2011-09-25 29 views
6

Tôi muốn có một từ (ví dụ: "Apple) và xử lý văn bản (hoặc có thể nhiều hơn). Tôi muốn đưa ra các thuật ngữ có liên quan. Ví dụ: xử lý tài liệu cho Apple và thấy rằng iPod, iPhone, Mac là những thuật ngữ liên quan tới "Apple".Thuật toán để tìm các từ liên quan trong văn bản

Bất kỳ ý tưởng về cách giải quyết này?

+0

việc kiểm tra này ra: http://semantic-link.com/ –

Trả lời

9

Là điểm xuất phát: câu hỏi của bạn liên quan đến text mining.

Có hai cách: một cách tiếp cận thống kê và một hình thức xử lý ngôn ngữ tự nhiên (nlp).

Tôi không biết nhiều về NLP, nhưng có thể nói điều gì đó về cách tiếp cận thống kê:

  1. Bạn cần một số đại diện không gian vector tài liệu của bạn, xem http://en.wikipedia.org/wiki/Vector_space_model http://en.wikipedia.org/wiki/Document-term_matrix http://en.wikipedia.org/wiki/Tf%E2%80%93idf

  2. Để học ngữ nghĩa, đó là: các từ khác nhau có ý nghĩa giống nhau, hoặc một từ có thể có ý nghĩa khác nhau, bạn cần một văn bản lớn cho việc học. Như tôi đã nói đây là một cách tiếp cận thống kê, vì vậy bạn cần rất nhiều mẫu. http://www.daviddlewis.com/resources/testcollections/

    Có thể bạn có nhiều tài liệu từ ngữ cảnh bạn định sử dụng. Đó là tình huống tốt nhất.

  3. Bạn phải truy lục các yếu tố tiềm ẩn từ kho dữ liệu này.phổ biến nhất là:

    Những phương pháp này đòi hỏi rất nhiều môn Toán. Hoặc bạn đào nó, hoặc bạn phải tìm thư viện tốt.

tôi có thể giới thiệu những cuốn sách sau đây:

+0

Đối với các núm vú giả như tôi, chúng tôi chỉ xây dựng một ma trận co-occurrence lớn. Điều này cho chúng ta biết rằng các từ xuất hiện cùng nhau và thực sự khá tốt. Cho dù chúng là từ đồng nghĩa và loại công cụ ... đó là AI và không thực sự tồn tại, mặc dù Hoifung Poon tại UW đã thực hiện một số nghiên cứu gọn gàng về điều này (phân tích cú pháp ngữ nghĩa không giám sát). – nflacco

2

giống như tất cả các AI, đó là một vấn đề rất khó khăn. Bạn nên nhìn vào natural language processing

Một cách tiếp cận rất, rất đơn giản có thể là xây dựng một bảng 2d từ, với mỗi cặp từ khoảng cách trung bình (trong wo) rds) mà chúng xuất hiện trong văn bản. Rõ ràng bạn sẽ cần phải giới hạn khoảng cách tối đa được xem xét và có thể là số lượng từ. Sau đó, sau khi xử lý nhiều văn bản, bạn sẽ có chỉ báo về tần suất một số từ nhất định xuất hiện trong cùng một ngữ cảnh.

2

Điều tôi sẽ làm là lấy tất cả các từ trong văn bản và tạo danh sách tần suất (tần suất mỗi từ xuất hiện). Có lẽ cũng thêm vào đó một yếu tố heuristic về cách xa từ này là từ "Apple". Sau đó đọc nhiều tài liệu và bỏ qua các từ không phổ biến trong tất cả các tài liệu. Sau đó, ưu tiên dựa trên tần suất và khoảng cách từ từ khóa. Tất nhiên, bạn sẽ nhận được rất nhiều rác và có thể bỏ lỡ một số từ có liên quan, nhưng bằng cách điều chỉnh các heuristics bạn sẽ nhận được ít nhất một số trận đấu phong nha.

+0

Suy nghĩ thêm về nó, bạn cũng nên cho ăn một số văn bản không liên quan đến "Apple" và loại trừ các từ xuất hiện trong các văn bản đó. Điều này sẽ loại bỏ các từ thông dụng như "the", "of", v.v. – Radu

1

Kỹ thuật bạn đang tìm kiếm được gọi là Latent Semantic Analysis (LSA). Nó cũng đôi khi được gọi là chỉ mục ngữ nghĩa tiềm ẩn. Kỹ thuật này hoạt động trên ý tưởng rằng các khái niệm liên quan xuất hiện cùng nhau trong văn bản. Nó sử dụng số liệu thống kê để xây dựng các mối quan hệ từ. Với một kho tài liệu đủ lớn, nó chắc chắn sẽ giải quyết vấn đề của bạn trong việc tìm kiếm các từ liên quan.

Các vấn đề liên quan