Phân tích ngôn ngữ để tìm các từ quan trọng


9

Tôi đang tìm kiếm một số đầu vào và lý thuyết về cách tiếp cận một chủ đề từ vựng.

Giả sử tôi có một tập hợp các chuỗi, có thể chỉ là một câu hoặc có khả năng nhiều câu. Tôi muốn phân tích các chuỗi này để tách ra các từ quan trọng nhất, có lẽ với số điểm biểu thị khả năng của từ đó là quan trọng.

Hãy xem xét một vài ví dụ về những gì tôi muốn nói.

Ví dụ 1:

"Tôi thực sự muốn có một chiếc Keurig, nhưng tôi không đủ tiền!"

Đây là một ví dụ rất cơ bản, chỉ một câu. Là một con người, tôi có thể dễ dàng thấy rằng "Keurig" là từ quan trọng nhất ở đây. Ngoài ra, "đủ khả năng" là tương đối quan trọng, mặc dù rõ ràng nó không phải là điểm chính của câu. Từ "Tôi" xuất hiện hai lần, nhưng nó không quan trọng chút nào vì nó không thực sự cho chúng tôi biết bất kỳ thông tin nào. Tôi có thể mong đợi để thấy một hàm băm của từ / điểm giống như thế này:

"Keurig" => 0.9
"afford" => 0.4
"want"   => 0.2
"really" => 0.1
etc...

Ví dụ # 2:

"Chỉ cần có một trong những cách bơi tốt nhất trong cuộc đời tôi. Hy vọng tôi có thể duy trì thời gian của mình đến cuộc thi. Giá như tôi đã nhớ mang theo chiếc đồng hồ không chống nước của mình."

Ví dụ này có nhiều câu, vì vậy sẽ có nhiều từ quan trọng hơn trong suốt. Không lặp lại bài tập điểm từ ví dụ # 1, tôi có thể mong đợi sẽ thấy hai hoặc ba từ thực sự quan trọng xuất phát từ điều này: "bơi" (hoặc "thực hành bơi"), "thi đấu", và "xem" (hoặc "không thấm nước đồng hồ "hoặc" đồng hồ không chống thấm nước "tùy thuộc vào cách xử lý dấu gạch nối).

Đưa ra một vài ví dụ như thế này, làm thế nào bạn sẽ làm điều gì đó tương tự? Có bất kỳ thư viện hoặc thuật toán (nguồn mở) hiện có nào trong lập trình đã làm điều này không?


Ngoài ra, đây là bài viết đầu tiên của tôi trên lập trình viên.stackexchange.com. Xin lỗi nếu đây là vị trí sai và thuộc về StackOverflow hoặc một trang SE khác. Hạnh phúc để di chuyển câu hỏi nếu cần thiết.
Matt Huggins

Tôi không hiểu từ câu hỏi những gì bạn đang cố gắng thực hiện. Đối với ví dụ đầu tiên cụ thể, các từ "Keurig" và "đủ khả năng" có thể được xác định bằng một kiểm tra thống kê đơn giản: trong số các từ của câu, hai từ này ít phổ biến hơn trong tiếng Anh so với các từ khác. Vì vậy, nếu bạn có một cơ sở dữ liệu về tần số từ, bạn có thể xác định những từ đó một cách dễ dàng.
Qwertie

Câu trả lời:


5

Chắc chắn có người nghĩ về vấn đề bạn mô tả. João Ventura và Joaquim Ferreira da SilvaXếp hạng và trích xuất các từ đơn liên quan trong văn bản (pdf) của là một giới thiệu hay về các kỹ thuật xếp hạng hiện có cũng như các đề xuất cải tiến. Tất cả các kỹ thuật họ mô tả dựa trên một kho văn bản (rất nhiều văn bản) so với một hoặc hai dòng văn bản. Văn bản của bạn sẽ phải là tập hợp của tất cả các mẫu hoặc có thể là nhiều tập hợp các mẫu được thu thập từ các nguồn cụ thể. Hãy nhớ rằng sự liên quan từ đơn (unigram) là một vấn đề chưa được giải quyết. Như bài viết mô tả:

"... Sử dụng các phương pháp thống kê thuần túy, loại phân loại này không phải lúc nào cũng đơn giản hay thậm chí chính xác bởi vì, mặc dù khái niệm về sự liên quan là một khái niệm dễ hiểu, nhưng thông thường không có sự đồng thuận nào về biên giới tách biệt sự không liên quan. Ví dụ, các từ như "Cộng hòa" hoặc "Luân Đôn" có liên quan đáng kể và các từ như "hoặc" và "vì" không có liên quan gì cả, nhưng những từ như "đọc", "chấm dứt" và "tiếp theo" thì sao? các từ có vấn đề vì thường không có sự đồng thuận về giá trị ngữ nghĩa của chúng. "

Có nhiều bộ công cụ xử lý ngôn ngữ tự nhiên nguồn mở . (Hãy cẩn thận. Một số công cụ miễn phí cho nghiên cứu nhưng yêu cầu giấy phép thương mại để sử dụng thương mại.) Chúng sẽ giúp cuộc sống của bạn dễ dàng hơn bất kể phương pháp bạn chọn.

Tôi quen thuộc nhất với Bộ công cụ ngôn ngữ tự nhiên (NLTK) . Nó dễ sử dụng, được ghi chép tốt và được giới thiệu trong cuốn sách, Xử lý ngôn ngữ tự nhiên với Python (có sẵn miễn phí trên mạng). Như một ví dụ đơn giản về những gì NLTK có thể làm cho bạn, hãy tưởng tượng bằng cách sử dụng trình ghi thẻ một phần của bài phát biểu . Với một phần của lời nói được xác định, bạn có thể coi các danh từ riêng rất quan trọng và tính từ ít như vậy. Động từ có thể là quan trọng và trạng từ ít hơn như vậy. Đây không phải là một bảng xếp hạng hiện đại, nhưng bạn có được thông tin hữu ích với ít nỗ lực. Khi bạn đã sẵn sàng để chuyển sang phân tích tinh vi hơn, khả năng mã hóa, gắn thẻ, phân đoạn và phân loại tích hợp của NLTK sẽ cho phép bạn tập trung vào các chi tiết khác của giải pháp.


1

Xử lý ngôn ngữ tự nhiên là ngành học riêng của nó với khá nhiều nghiên cứu chính thức được thực hiện về nó. Tôi sẽ bắt đầu bằng cách nhìn vào đó.

Tôi cũng sẽ xem xét lại nhu cầu của tôi. Ngay cả sau hơn 50 năm nghiên cứu, các nhà khoa học máy tính giỏi nhất đã có thể tìm ra là Siri. Tôi sẽ không mong đợi một máy tính thực hiện thành công những gì bạn đang nói về sự đều đặn.

Nếu có những hạn chế nhất định đối với bài phát biểu (như Siri giả sử bạn có một lệnh hoặc câu hỏi đơn giản) thì có thể tốt hơn. Xem xét lại nhu cầu của tôi (giả sử tôi cần NLP) sẽ bao gồm việc xác định các giới hạn của tôi. Sau đó tôi có thể sẽ săn lùng rất nhiều ví dụ. Một phần để kiểm tra bất cứ điều gì tôi nghĩ ra, nhưng nhiều giải pháp hiện đại liên quan đến học máy. Tôi cần những ví dụ này làm đầu vào cho quá trình học tập.

Vì vậy, tóm lại, tôi nghiêm túc nghi ngờ bất cứ điều gì sẽ có thể cung cấp cho bạn điểm số tốt trong loại kịch bản miễn phí bối cảnh này.


+1 cho Siri đào ... hoặc quảng cáo ...
Aaron McIver
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.