Làm thế nào tôi có thể có được một thước đo về sự giống nhau về ngữ nghĩa của các từ?


20

Cách tốt nhất để tìm ra sự giống nhau về ngữ nghĩa của các từ là gì? Word2Vec không sao, nhưng không lý tưởng:

# Using the 840B word Common Crawl GloVe vectors with gensim:

# 'hot' is closer to 'cold' than 'warm'
In [7]: model.similarity('hot', 'cold')
Out[7]: 0.59720456121072973

In [8]: model.similarity('hot', 'warm')
Out[8]: 0.56784095376659627

# Cold is much closer to 'hot' than 'popular'
In [9]: model.similarity('hot', 'popular')
Out[9]: 0.33708479049537632

Các phương thức Wordnet của NLTK dường như chỉ bỏ cuộc:

In [25]: print wn.synset('hot.a.01').path_similarity(wn.synset('warm.a.01'))
None

Các lựa chọn khác là gì?


1
Bạn có thể cho biết tại sao word2vec không lý tưởng? Word2vec được thiết kế để nắm bắt sự giống nhau về ngữ nghĩa của các từ, vậy tại sao nó không lý tưởng?
GUASHA GUASHA

3
Vâng, đó là lý do tại sao tôi cung cấp các ví dụ trong câu hỏi. Để nhắc lại: 'nóng' và 'lạnh' là từ trái nghĩa, nhưng chúng giống nhau hơn (theo word2vec) hơn 'nóng' và 'ấm' gần với từ đồng nghĩa hơn. 'Nóng' cũng có thể có nghĩa là 'phổ biến' (ví dụ: "mặt hàng nóng") nhưng một lần nữa "nóng" và "lạnh" lại gần nhau hơn "nóng và" phổ biến ". Vì vậy, word2vec không lý tưởng vì nó ghi điểm từ trái nghĩa (đối lập về ngữ nghĩa) giống với từ đồng nghĩa hơn (tương đương về mặt ngữ nghĩa).
Thomas Johnson

Câu trả lời:


11

Word2vec không nắm bắt được sự tương đồng dựa trên các từ trái nghĩa và từ đồng nghĩa. Word2vec sẽ cho độ tương tự cao hơn nếu hai từ có ngữ cảnh tương tự nhau. Ví dụ: Thời tiết ở California là _____. Khoảng trống có thể được lấp đầy bởi cả nóng và lạnh do đó độ tương tự sẽ cao hơn. Khái niệm này được gọi là quan hệ Paradigmatic.

Nếu bạn quan tâm đến việc nắm bắt các mối quan hệ như hypernyms, hyponyms, từ đồng nghĩa, từ trái nghĩa, bạn sẽ phải sử dụng bất kỳ biện pháp tương tự dựa trên wordnet nào. Có nhiều biện pháp tương tự dựa trên wordnet. Bạn có thể kiểm tra liên kết này http://ws4jdemo.appspot.com/


7

Trong các công cụ phân tích văn bản cho sự tương đồng về ngữ nghĩa , họ đã phát triển một thuật toán để tìm ra sự giống nhau giữa 2 câu. Nhưng nếu bạn đọc kỹ, họ sẽ tìm thấy sự giống nhau của từ trong một ma trận và tổng hợp lại với nhau để tìm ra sự giống nhau giữa các câu. Vì vậy, nó có thể là một shot để kiểm tra độ tương tự từ.

Cũng trong SimLex-999: Đánh giá các mô hình ngữ nghĩa với ước tính tương tự (chính hãng) , chúng giải thích sự khác biệt giữa associationsimilarityđó có lẽ là lý do để bạn quan sát. Ví dụ, cà phê và một tách. Chúng không giống nhau nhưng chúng là liên kết. Vì vậy, chỉ cần xem xét sự tương tự sẽ cho một kết quả khác. Các tác giả đề xuất các mô hình khác nhau để ước tính chúng.


Liên kết bị hỏng, "Công cụ phân tích văn bản cho sự tương đồng về ngữ nghĩa".
xtian

2

Word2vec là một điểm khởi đầu tốt cho hầu hết các kịch bản. Nó không ngữ nghĩa chụp bằng cách sử dụng phương pháp dự đoán CBOW. Nó cho phép dịch (như ví dụ lặp đi lặp lại nhiều nhất tôi có thể đặt lại ở đây), V (King) - V (Queen) ~ ~ V (nam) - V (nữ), v.v.

Vì vậy, vấn đề là gì? Vấn đề nằm ở sự mơ hồ về ý nghĩa từ. Bất cứ khi nào từ đó có hai ý nghĩa khác nhau trong hai bối cảnh khác nhau, vectơ từ sẽ có xu hướng thực sự cách xa một trong hai bối cảnh. Python ~ Boa (cả rắn) và Python - Java (cả hai ngôn ngữ lập trình) ..

Bất kỳ thay thế?

Với mục đích rất cụ thể là "từ đồng nghĩa" nếu bạn muốn Wordnet sẽ là nơi lý tưởng. Nó nắm bắt mối quan hệ rõ ràng của hai từ chứ không phải mối quan hệ ngầm dựa trên việc sử dụng và sự xuất hiện.

Wordnet chủ yếu được tạo ra như một từ điển - trong đó word2vec được khai thác theo cách sử dụng.


0

Trong một ngữ pháp miễn phí ngữ cảnh, tôi nghĩ rằng nó thực sự là không thể để xác định sự gần gũi của các từ. Những gì bạn có thể làm là sử dụng các vectơ từ vựng và sau đó nếu một từ gần với các giá trị giữa hai từ vựng thì giá trị sẽ được đóng lại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.