Làm thế nào để phát triển một danh sách các từ liên quan dựa trên các từ khóa ban đầu?


19

Gần đây tôi đã thấy một tính năng thú vị đã từng có trong Google Sheets: bạn bắt đầu bằng cách viết một vài từ khóa liên quan trong các ô liên tiếp, nói: "blue", "green", "yellow" và nó tự động tạo ra các từ khóa tương tự (trong trường hợp này là , màu sắc khác). Xem thêm ví dụ trong video YouTube này .

Tôi muốn tái tạo điều này trong chương trình của riêng tôi. Tôi đang nghĩ đến việc sử dụng Freebase và nó sẽ hoạt động như thế này bằng trực giác:

  1. Lấy danh sách các từ đã cho trong Freebase;
  2. Tìm "mẫu số chung" của họ và xây dựng một thước đo khoảng cách dựa trên điều này;
  3. Xếp hạng các khái niệm khác dựa trên "khoảng cách" của chúng với các từ khóa ban đầu;
  4. Hiển thị các khái niệm gần nhất tiếp theo.

Vì tôi không quen thuộc với lĩnh vực này, nên câu hỏi của tôi là:

  • Có cách nào tốt hơn để làm điều này?
  • Những công cụ có sẵn cho mỗi bước?

Tôi đoán là điều này dựa trên các chủ đề học tập trong một kho văn bản lớn.
tchakravarty

Nếu bạn muốn tìm lời giải thích của họ, tôi tin rằng đã có một bài viết về phương pháp cơ bản được gọi là Bộ Google.
jamesmf 6/11/2015

1
Vấn đề này được gọi là "mở rộng truy vấn".
Emre

Câu trả lời:


15

Các thuật toán word2vec có thể là một cách tốt để khôi phục nhiều yếu tố cho một danh sách các từ tương tự. Đây là một thuật toán "học sâu" không giám sát mà trước đây đã được chứng minh bằng dữ liệu đào tạo dựa trên Wikipedia (tập lệnh trợ giúp được cung cấp trên trang mã Google).

Hiện tại có CPython triển khai. Hướng dẫn này của Radim ehůřek , tác giả của thư viện mô hình chủ đề Gensim , là một nơi tuyệt vời để bắt đầu.

Trình diễn "chủ đề duy nhất" trong hướng dẫn là một ví dụ hay về việc truy xuất các từ tương tự với một thuật ngữ (thử tìm kiếm trên 'đỏ' hoặc 'vàng'). Có thể mở rộng kỹ thuật này để tìm các từ có độ tương tự tổng thể lớn nhất với một tập hợp các từ đầu vào.


5

Bạn đã xem xét một cách tiếp cận dựa trên tần số khai thác sự xuất hiện từ đơn giản trong cora chưa? Ít nhất, đó là những gì tôi đã thấy hầu hết mọi người sử dụng cho việc này. Tôi nghĩ rằng nó có thể được đề cập ngắn gọn trong cuốn sách của Manning và Schütze, và tôi dường như nhớ một cái gì đó giống như một bài tập về nhà ở trường học ...

Thêm thông tin tại đây: http://nlp.stanford.edu/IR-book/html/htmledition/automatic-thesaurus-generation-1.html

Đối với bước này:

Xếp hạng các khái niệm khác dựa trên "khoảng cách" của chúng với các từ khóa ban đầu;

Có một số số liệu tương tự về ngữ nghĩa mà bạn có thể xem xét. Đây là một liên kết đến một số slide mà tôi đã kết hợp cho một dự án lớp bằng cách sử dụng một vài trong số các số liệu tương tự này trong WordNet: http://www.eecis.udel.edu/~trnka/CISC889-11S/lectures/greenbacker-WordNet-Similarity. pdf


3

Đây là một trong những vấn đề hay khi phạm vi có thể thay đổi từ bài tập về nhà sang dự án kích thước của Google.

Thật vậy, bạn có thể bắt đầu với sự xuất hiện của các từ (ví dụ: xác suất có điều kiện). Bạn sẽ nhanh chóng phát hiện ra rằng bạn có được danh sách các từ dừng liên quan đến hầu hết các từ đơn giản vì chúng rất phổ biến. Sử dụng nâng xác suất có điều kiện sẽ quan tâm đến các từ dừng nhưng sẽ làm cho mối quan hệ dễ bị lỗi với số lượng nhỏ (hầu hết các trường hợp của bạn). Bạn có thể thử Jacard nhưng vì nó đối xứng nên sẽ có nhiều mối quan hệ mà nó sẽ không tìm thấy.

Sau đó, bạn có thể xem xét các mối quan hệ chỉ xuất hiện trong khoảng cách ngắn từ từ cơ sở. Bạn có thể (và nên) xem xét các mối quan hệ dựa trên cơ sở chung (ví dụ: Wikipedia) và cụ thể của người dùng (ví dụ: email của anh ấy).

Rất nhanh bạn sẽ có nhiều biện pháp liên quan, khi tất cả các biện pháp đều tốt và có một số lợi thế so với các biện pháp khác.

Để kết hợp các biện pháp như vậy, tôi muốn giảm vấn đề thành vấn đề phân loại.

Bạn nên xây dựng một tập hợp dữ liệu paris của các từ và gắn nhãn chúng là "có liên quan". Để xây dựng một tập dữ liệu có nhãn lớn, bạn có thể:

  • Sử dụng nguồn của các từ liên quan đã biết (ví dụ: các danh mục Wikipedia cũ tốt) cho tích cực
  • Hầu hết các từ không được gọi là liên quan không liên quan.

Sau đó sử dụng tất cả các biện pháp bạn có như các tính năng của các cặp. Bây giờ bạn đang ở trong miền của vấn đề phân loại được giám sát. Xây dựng một bộ phân loại trên tập dữ liệu, được đánh giá theo nhu cầu của bạn và có được một thước đo tương tự phù hợp với nhu cầu của bạn.

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.