การลดขนาดของ FastText Word2Vec ของ Facebook

ฉันกำลังสร้างโมเดลแมชชีนเลิร์นนิงซึ่งจะประมวลผลเอกสารและดึงข้อมูลสำคัญบางส่วนจากโมเดลดังกล่าว สำหรับสิ่งนี้ ฉันต้องใช้การฝังคำสำหรับเอาต์พุต OCRed ฉันมีตัวเลือกต่างๆ มากมายสำหรับการฝัง (word2vec ของ Google, Stanford's, FastText ของ Facebook) แต่ข้อกังวลหลักของฉันคือคำ OOV เนื่องจากเอาต์พุต OCR จะมีคำที่สะกดผิดจำนวนมาก ตัวอย่างเช่น ฉันต้องการการฝังโดยที่เอาต์พุตสำหรับ การฝัง และ การฝัง (OCR ที่พลาดไป) ควรมีความคล้ายคลึงกันในระดับหนึ่ง ฉันไม่สนใจข้อมูลบริบทที่เกี่ยวข้องมากนัก

ฉันเลือก FastText ของ Facebook เนื่องจากมีการฝังคำ OOV ด้วยเช่นกัน ความกังวลเดียวของฉันคือขนาดของการฝัง ขนาดเวกเตอร์ของโมเดล FastText มีความยาว 300 มีวิธีลดขนาดของเวกเตอร์คำที่ส่งคืนหรือไม่ (ฉันกำลังคิดที่จะใช้ PCA หรือเทคนิคการลดขนาดอื่น ๆ แต่เมื่อพิจารณาจากขนาดของเวกเตอร์คำ ก็สามารถเป็นได้ งานที่ใช้เวลานาน)?


person ironhide012    schedule 19.11.2019    source แหล่งที่มา
comment
คุณสามารถระบุขนาดเวกเตอร์ที่เล็กกว่าขนาด 300 ได้เมื่อฝึกโมเดล และโมเดลจะมีขนาดเล็กลงตามสัดส่วน แต่ทำไมขนาดถึงเป็นกังวล? (คุณใช้ทรัพยากรระบบถึงขีดจำกัดแล้วเมื่อใช้ขนาดปกติหรือไม่)   -  person gojomo    schedule 20.11.2019
comment
นอกจากนี้ แม้ว่าความไวของ FastText ต่อส่วนของคำย่อย (อักขระ n-กรัม) อาจช่วยได้เล็กน้อยกับข้อผิดพลาด OCR แต่เพียงอย่างเดียวอาจไม่เพียงพอ คุณอาจต้องการใช้กระบวนการตรวจสอบการสะกดอื่นๆ แทน เพื่อแทนที่คำที่ไม่มีอยู่ในคลังข้อมูลอื่นๆ ที่ไม่ผิดพลาดด้วยการเดาที่ดีที่สุดอื่นๆ (ขึ้นอยู่กับระยะทางในการแก้ไข ความถี่ของคำที่สัมพันธ์กัน หรือคำบริบท) จริง คำ.   -  person gojomo    schedule 20.11.2019


คำตอบ (1)


มีฟังก์ชันการทำงานแบบเนทิฟ แต่ คุณควรติดตั้ง fasttext จาก github (โคลน repo และ pip ​​install .) เนื่องจาก ไม่มีในขณะนี้ (2020-03-04) ที่ใช้งานได้กับ pip install fasttext< /แข็งแกร่ง>:

import fasttext
import fasttext.util

ft = fasttext.load_model('cc.en.300.bin')
print(ft.get_dimension())

fasttext.util.reduce_model(ft, 100)
print(ft.get_dimension())

โค้ดนี้ควรลดความยาวการฝังเวกเตอร์ 300 ของคุณเหลือ 100

ลิงก์ไปยังเอกสารอย่างเป็นทางการ: https://fasttext.cc/docs/en/crawl-vectors.html

person Pedro Muñoz    schedule 04.03.2020
comment
นี่คือลิงก์โดยตรงไปยังคำแนะนำในการติดตั้ง: github.com/facebookresearch/fastText/ ต้นไม้/ต้นแบบ/ - person Gearoid Murphy; 19.03.2020