นี่คือชุดของรหัสการเลือกคุณสมบัติจากข้อมูลข้อความ (เกี่ยวกับการเลือกคุณสมบัติดูที่นี่หรือที่นี่)
การเลือกคุณสมบัติเป็นสิ่งสำคัญมากเมื่อคุณใช้ตัวชี้วัดการเรียนรู้ของเครื่องกับข้อมูลภาษาธรรมชาติ ข้อมูลภาษาธรรมชาติมักจะมีข้อมูลเสียงรบกวนมากมายดังนั้นการเรียนรู้ของเครื่องจะอ่อนแอหากคุณไม่ได้ทำการเลือกคุณสมบัติใด ๆ (มีข้อยกเว้นบางอย่างของอัลกอริทึมเช่น ต้นไม้ตัดสินใจ หรือ ป่าสุ่ม พวกเขามีตัวชี้วัดการเลือกคุณสมบัติภายในอัลกอริทึมเอง)
การเลือกคุณสมบัติก็มีประโยชน์เมื่อคุณสังเกตข้อมูลข้อความของคุณ ด้วยการเลือกฟีเจอร์คุณจะได้รู้ว่าคุณสมบัติใดที่มีส่วนช่วยในฉลากที่เฉพาะเจาะจง
กรุณาเยี่ยมชมหน้าโครงการบน GitHub
หากคุณพบข้อบกพร่องใด ๆ และคุณรายงานไปยังปัญหา GitHub ฉันดีใจ
ยินดีต้อนรับคำตอบแบบดึงใด ๆ
แพ็คเกจนี้ให้ตัวชี้วัดการเลือกคุณสมบัติบางอย่างแก่คุณ ปัจจุบันแพ็คเกจนี้รองรับวิธีการเลือกคุณสมบัติต่อไปนี้
ในความเป็นจริงวิธีนี้เพียงแค่เรียก TfidfTransformer ของ scikit-learn
ดูเอกสาร Scikit-Learn เกี่ยวกับข้อมูลรายละเอียด
PMI คำนวณโดยความสัมพันธ์ระหว่าง คุณสมบัติ (เช่นโทเค็น) และ หมวดหมู่ (เช่นฉลาก) เป็นรูปธรรมทำให้ ข้ามตาราง (หรือเรียกว่า ตารางฉุกเฉิน ) และคำนวณความน่าจะเป็นร่วมและความน่าจะเป็นเล็กน้อย
หากต้องการทราบข้อมูลเพิ่มเติมดูการอ้างอิง
ใน Python World, NLTK และแพ็คเกจอื่น ๆ ยังมี PMI ตรวจสอบและเลือกตามความชอบและการใช้งานของคุณ
SOA ได้รับการปรับปรุงวิธีการเลือกคุณสมบัติจาก PMI PMI อ่อนแอเมื่อคุณสมบัติมีความถี่คำต่ำ SOA ขึ้นอยู่กับการคำนวณ PMI อย่างไรก็ตามเป็นไปได้ในคุณสมบัติความถี่ต่ำเช่นนี้ นอกจากนี้คุณสามารถต่อต้านความสัมพันธ์ระหว่างคุณสมบัติและหมวดหมู่
ในแพ็คเกจนี้สูตร SOA มาจากกระดาษต่อไปนี้
Saif Mohammad and Svetlana Kiritchenko, "Using Hashtags to Capture Fine Emotion Categories from Tweets", Computational Intelligence, 01/2014; 31(2).
SOA(w, e) = log_2frac{freq(w, e) * freq(neg{e})}{freq(e) * freq(w, neg{e})}
ที่ไหน
BNS เป็นวิธีการเลือกคุณสมบัติสำหรับข้อมูลคลาสไบนารี มีหลายวิธีสำหรับข้อมูลระดับไบนารีเช่น ข้อมูลที่เพิ่มขึ้น (IG) , Chi-squared (CHI) , อัตราต่อรอง (อัตราต่อรอง)
ปัญหาคือเมื่อคุณดำเนินการเลือกคุณสมบัติของคุณในข้อมูลเบ้ วิธีการเหล่านี้อ่อนแอสำหรับข้อมูลที่เบ้ดังกล่าวอย่างไรก็ตาม BNS เป็นไปได้สำหรับข้อมูลที่เบ้เท่านั้น กระดาษต่อไปนี้แสดงให้เห็นว่า BNS เป็นไปได้อย่างไรสำหรับข้อมูลที่เบ้
Lei Tang and Huan Liu, "Bias Analysis in Text Classification for Highly Skewed Data", 2005
หรือ
George Forman, "An Extensive Empirical Study of Feature Selection Metrics for Text Classification",Journal of Machine Learning Research 3 (2003) 1289-1305
python setup.py install
คุณอาจเห็นข้อความแสดงข้อผิดพลาดในระหว่างการเรียกใช้คำสั่งนี้เช่น
We failed to install numpy automatically. Try installing numpy manually or Try anaconda distribution.
นี่เป็นเพราะ setup.py พยายามที่จะติดตั้ง numpy และ scipy ด้วย pip แต่มันล้มเหลว เราต้องการ numpy และ scipy ก่อนที่เราจะติดตั้ง scikit-learn
ในกรณีนี้คุณเลือกตัวเลือกต่อไปนี้
numpy และ scipy ด้วยตนเองanaconda Python กรุณาเยี่ยมชมเว็บไซต์ของพวกเขา input_dict = {
"label_a" : [
[ "I" , "aa" , "aa" , "aa" , "aa" , "aa" ],
[ "bb" , "aa" , "aa" , "aa" , "aa" , "aa" ],
[ "I" , "aa" , "hero" , "some" , "ok" , "aa" ]
],
"label_b" : [
[ "bb" , "bb" , "bb" ],
[ "bb" , "bb" , "bb" ],
[ "hero" , "ok" , "bb" ],
[ "hero" , "cc" , "bb" ],
],
"label_c" : [
[ "cc" , "cc" , "cc" ],
[ "cc" , "cc" , "bb" ],
[ "xx" , "xx" , "cc" ],
[ "aa" , "xx" , "cc" ],
]
}
from DocumentFeatureSelection import interface
interface . run_feature_selection ( input_dict , method = 'pmi' , use_cython = True ). convert_score_matrix2score_record ()จากนั้นคุณจะได้รับผลลัพธ์
[{ 'score' : 0.14976146817207336 , 'label' : 'label_c' , 'feature' : 'bb' , 'frequency' : 1.0 }, ...] ดูสคริปต์ใน examples/
คุณสามารถตั้งค่าสภาพแวดล้อม dev ด้วย compose docker
คำสั่งนี้เรียกใช้การทดสอบด้วยคอนเทนเนอร์ Docker
$ cd tests/
$ docker-compose build
$ docker-compose up