ความคล้ายคลึงเชิงความหมายสำหรับการจัดหมวดหมู่ข้อความ
เป้าหมายหลักของความคล้ายคลึงเชิงความหมาย (semantic similarity) คือการวัดระยะห่างระหว่างความหมายของคำ วลี ประโยค หรือเอกสารสองชิ้น ตัวอย่างเช่น คำว่า "car" มีความใกล้เคียงกับ "bus" มากกว่า "cat" ในแบบฝึกหัดนี้ คุณจะค้นหาประโยคที่มีความคล้ายคลึงกับคำว่า sauce จากข้อความตัวอย่างใน Amazon Fine Food Reviews โดยใช้ spacy คำนวณค่าความคล้ายคลึงระหว่างคำว่า sauce กับแต่ละประโยคในสตริง texts ที่กำหนด แล้วรายงานค่าคะแนนของประโยคที่คล้ายคลึงที่สุด
สตริง texts ที่โหลดไว้ล่วงหน้าจะเก็บข้อมูลฟิลด์ Text จากรีวิวทั้งหมด และแบบฝึกหัดนี้ใช้โมเดล en_core_web_md ซึ่งพร้อมใช้งานแล้วในชื่อตัวแปร nlp
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การประมวลผลภาษาธรรมชาติด้วย spaCy
คำแนะนำการฝึกหัด
- ใช้
nlpสร้างDoccontainer สำหรับคำว่าsauceและสำหรับtextsแล้วเก็บไว้ที่ตัวแปรkeyและsentencesตามลำดับ - คำนวณค่าความคล้ายคลึงระหว่างคำว่า
sauceกับแต่ละประโยคในสตริงtexts(ปัดเศษให้เหลือทศนิยม 2 ตำแหน่ง)
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Populate Doc containers for the word "sauce" and for "texts" string
key = ____
sentences = ____
# Calculate similarity score of each sentence and a Doc container for the word sauce
semantic_scores = []
for sent in sentences.____:
semantic_scores.append({"score": round(sent.____(____), 2)})
print(semantic_scores)