2009-12-18 22 views
16

Tôi đang làm việc trên một dự án tại thời điểm mà tôi cần phải chọn ra các cụm từ phổ biến nhất trong một phần lớn văn bản. Ví dụ nói chúng tôi có ba câu như sau:Cách tìm cụm từ phổ biến trong một phần lớn văn bản

  • Con chó nhảy so với phụ nữ.
  • Con chó nhảy vào ô tô.
  • Con chó nhảy lên số lên cầu thang.

Từ ví dụ trên, tôi muốn trích xuất "chú chó đã nhảy" vì đó là cụm từ phổ biến nhất trong văn bản. Lúc đầu, tôi nghĩ, "oh cho phép sử dụng một đồ thị có hướng [với nút lặp đi lặp lại]":

directed graph http://img.skitch.com/20091218-81ii2femnfgfipd9jtdg32m74f.png

EDIT: Xin lỗi, tôi đã phạm sai lầm khi thực hiện sơ đồ này "qua", "vào" và "up" nên tất cả liên kết trở lại "the".

Tôi sẽ duy trì số lần một từ xuất hiện trong mỗi đối tượng nút ("số" sẽ là 6; "chó" và "nhảy", 3; v.v) nhưng bất chấp nhiều vấn đề khác một người đã xuất hiện khi chúng tôi thêm một vài ví dụ khác như (vui lòng bỏ qua ngữ pháp xấu :-)):

  • Chó nhảy lên và xuống.
  • Chó nhảy như không có chú chó nào từng nhảy trước đó.
  • Chó nhảy vui vẻ.

Bây giờ chúng ta có một vấn đề vì "chó" sẽ bắt đầu một nút gốc mới (ở mức độ tương tự như "the") và chúng tôi sẽ không xác định "chó nhảy" như bây giờ là phổ biến nhất cụm từ. Bây giờ tôi nghĩ có lẽ tôi có thể sử dụng đồ thị vô hướng để lập bản đồ mối quan hệ giữa tất cả các từ và cuối cùng chọn ra các cụm từ phổ biến nhưng tôi không chắc chắn nó sẽ hoạt động như thế nào, từ.

Vì vậy, có ai có bất kỳ ý tưởng chung nào về cách xác định cụm từ phổ biến trong phần lớn văn bản và cấu trúc dữ liệu tôi sẽ sử dụng hay không.

Cảm ơn, Bến

+0

Chỉ cần liên kết lại để một bài sau http://stackoverflow.com/questions/8898521/finding-2-3-word-phrases-using-r-tm-package – conr404

+0

Tôi không ở trong một vị trí cung cấp mọi thứ cụ thể về thuật toán để sử dụng. Tuy nhiên, Bạn có nhận thấy sự xuất hiện của igraph để biểu diễn và thao tác đồ thị không? Tôi sử dụng Python và các ràng buộc cho rằng làm cho sản phẩm cơ bản trông khá tiện lợi. http://igraph.sourceforge.net –

Trả lời

8

Kiểm tra câu hỏi có liên quan này: What techniques/tools are there for discovering common phrases in chunks of text? Cũng liên quan đến the longest common substring problem.

Tôi đã đăng bài này trước đây, nhưng tôi sử dụng R cho tất cả các nhiệm vụ khai thác dữ liệu của tôi và nó rất phù hợp với loại phân tích này. Đặc biệt, hãy xem gói tm. Dưới đây là một số liên kết có liên quan:

Tổng quát hơn, có một số lượng lớn các gói khai thác văn bản on the Natural Language Processing view on CRAN.

+0

Tôi không tin rằng vấn đề chuỗi con dài phổ biến nhất giải quyết vấn đề là từ những gì tôi đã đọc một thuật toán LCS sẽ ủng hộ chuỗi phổ biến ít phổ biến hơn trong chuỗi phổ biến ngắn hơn phổ biến hơn , đúng nếu tôi đã sai lầm. R có vẻ thú vị, tôi chỉ xem xét nó ngay trước đây, chắc chắn sẽ có một cái nhìn khác. Cảm ơn bạn. – benofsky

+0

Từ liên kết ở trên, đề nghị của Norman Ramsey sử dụng n-gram sẽ giúp ích. – iokevins

+0

Hóa ra tôi đã không biết gì, điều này dẫn tôi đến giải quyết vấn đề của tôi. :) – benofsky

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