2010-07-13 27 views
9

Văn bản không có cấu trúc sau đây có ba chủ đề riêng biệt - Stallone, Philadelphia và Cách mạng Mỹ. Nhưng bạn sẽ sử dụng thuật toán hoặc kỹ thuật nào để tách nội dung này thành các đoạn riêng biệt?Cách sử dụng NLP để tách nội dung văn bản không có cấu trúc thành các đoạn riêng biệt?

Các trình phân loại sẽ không hoạt động trong tình huống này. Tôi cũng đã cố gắng sử dụng phân tích tương tự Jaccard để tìm khoảng cách giữa các câu liên tiếp và cố gắng nhóm các câu liên tiếp thành một đoạn nếu khoảng cách giữa chúng thấp hơn một giá trị đã cho. Có phương pháp nào tốt hơn không?

Đây là mẫu văn bản của tôi:

Sylvester Stallone Gardenzio, có biệt danh là Sly Stallone, là một diễn viên người Mỹ, nhà sản xuất phim và nhà biên kịch. Stallone được biết đến với vai trò hành động machismo và Hollywood của mình. Phim của Stallone, Rocky được giới thiệu vào Cơ quan đăng ký phim quốc gia cũng như đạo cụ điện ảnh được đặt tại Bảo tàng Smithsonian. Việc sử dụng lối vào phía trước của Bảo tàng Nghệ thuật Philadelphia trong dãy Rocky dẫn đến khu vực được đặt tên là trung tâm thương mại, giáo dục và văn hóa Rocky Steps.A, Philadelphia từng là thành phố lớn thứ hai ở Đế quốc Anh (sau Luân Đôn)), và trung tâm xã hội và địa lý của 13 thuộc địa nguyên thủy của Mỹ. Nó là một trung tâm của lịch sử Mỹ đầu tiên, lưu trữ nhiều ý tưởng và hành động đã sinh ra cuộc Cách mạng Mỹ và độc lập. Cách mạng Mỹ là biến động chính trị trong nửa cuối thế kỷ 18, trong đó mười ba thuộc địa ở Bắc Mỹ tham gia cùng nhau thoát khỏi Đế quốc Anh, kết hợp để trở thành Hoa Kỳ. Lần đầu tiên họ từ chối thẩm quyền của Quốc hội Anh để cai trị họ từ nước ngoài mà không có đại diện, và sau đó trục xuất tất cả các quan chức hoàng gia. Đến năm 1774, mỗi thuộc địa đã thành lập một Quốc hội tỉnh, hoặc một cơ quan chính phủ tương đương, để hình thành các quốc gia tự quản.

Trả lời

1

Tôi không biết nhiều về điều này, vì vậy câu trả lời này là một bài viết tốt hơn. Tuy nhiên, hai điểm

  1. Một tên cho vấn đề này là nhận dạng chủ đề và http://research.microsoft.com/en-us/um/people/cyl/download/papers/thesis97.pdf là giấy thường được trích dẫn trong khu vực này.
  2. Điều này có thể rất khó. Tôi sẽ không tách Philadelphia khỏi cuộc cách mạng Mỹ nếu bạn không nói với tôi.
14

Vì vậy, tôi đã làm việc trong NLP trong một thời gian dài và đây thực sự là một vấn đề khó khăn mà bạn đang cố gắng giải quyết. Bạn sẽ không bao giờ có thể thực hiện một giải pháp với độ chính xác 100%, vì vậy bạn nên quyết định xem liệu có nên đưa ra quyết định tiêu cực sai lệch hay không (không tìm ra phân đoạn-phân đoạn) hoặc các quyết định dương tính giả (chèn phân đoạn giả) điểm). Một khi bạn làm điều đó, lắp ráp một kho văn bản và chú thích các điểm phân đoạn thực sự mà bạn mong đợi tìm thấy.

Khi bạn đã thực hiện điều đó, bạn sẽ cần một cơ chế để tìm các điểm EOS (cuối câu). Sau đó, giữa mỗi cặp câu, bạn sẽ cần phải thực hiện một quyết định nhị phân: nên một ranh giới đoạn được chèn vào đây?

Bạn có thể đo lường sự gắn kết của các khái niệm trong mỗi đoạn dựa trên các điểm phân đoạn khác nhau. Ví dụ, trong một tài liệu với năm câu (ABCDE), có mười sáu cách khác nhau để phân khúc nó:

ABCDE ABCD|E ABC|DE ABC|D|E AB|CDE AB|CD|E AB|C|DE AB|C|D|E 
A|BCDE A|BCD|E A|BC|DE A|BC|D|E A|B|CDE A|B|CD|E A|B|C|DE A|B|C|D|E 

Để đo sự gắn kết, bạn có thể sử dụng một câu-to-câu tương metric (dựa trên một số bộ sưu tập các tính năng được trích xuất cho mỗi câu). Để đơn giản, nếu hai câu liền kề có chỉ số tương tự là 0.95, sau đó có một 0,05 "chi phí" để kết hợp chúng vào cùng một đoạn. Tổng chi phí của một kế hoạch phân đoạn tài liệu là tổng của tất cả các chi phí tham gia câu. Để đến phân khúc cuối cùng, bạn chọn gói có chi phí tổng hợp ít tốn kém nhất.

Tất nhiên, đối với tài liệu có nhiều hơn một vài câu, có quá nhiều hoán vị phân đoạn có thể khác nhau để brute-force đánh giá tất cả các chi phí của chúng. Vì vậy, bạn sẽ cần một số heuristic để hướng dẫn quá trình. Lập trình động có thể hữu ích ở đây.

Đối với tính năng trích xuất câu thực tế ... tốt, đó là nơi nó trở nên thực sự phức tạp.

Bạn có thể muốn bỏ qua các từ cú pháp cao (các từ liên kết như giới từ, liên kết, giúp động từ, và đánh dấu điều khoản) và căn cứ sự giống nhau của bạn xung quanh nhiều từ ngữ ngữ nghĩa (danh từ và động từ, và ở mức độ thấp hơn, tính từ và trạng từ)).

Việc triển khai ngây thơ có thể chỉ đếm số lượng cá thể của mỗi từ và so sánh số lượng từ trong một câu với số từ trong một câu liền kề. Nếu một từ quan trọng (như "Philadelphia") xuất hiện trong hai câu liền nhau, thì chúng có thể có điểm tương đồng cao.

Nhưng vấn đề với điều đó là hai câu liền kề có thể có những chủ đề rất giống nhau, ngay cả khi những câu đó có bộ từ hoàn toàn không trùng lặp.

Vì vậy, bạn cần đánh giá "ý nghĩa" của mỗi từ (ý nghĩa cụ thể của nó, được đưa ra bối cảnh xung quanh) và khái quát ý nghĩa đó để bao gồm một miền rộng hơn.

Ví dụ: chụp một câu có từ "xanh lục" trong đó. Trong quá trình trích xuất tính năng của tôi, tôi chắc chắn sẽ bao gồm giá trị từ vựng chính xác ("xanh") nhưng tôi cũng áp dụng một biến đổi hình thái, bình thường hóa từ thành dạng gốc của nó ("xanh"). Sau đó, tôi sẽ tra cứu từ đó trong một phân loại và khám phá ra rằng đó là một màu sắc, có thể được tổng quát hơn nữa như là một bộ mô tả trực quan. Vì vậy, dựa trên một từ đó, tôi có thể thêm bốn tính năng khác nhau vào bộ sưu tập các tính năng câu của tôi ("xanh lục", "xanh lục", "[màu]", "[hình ảnh]"). Nếu câu tiếp theo trong tài liệu nhắc đến màu "xanh lục" một lần nữa, thì hai câu sẽ rất giống nhau. Nếu câu tiếp theo sử dụng từ "đỏ", thì chúng vẫn có mức độ giống nhau, nhưng ở mức độ thấp hơn.

Vì vậy, có một số ý tưởng cơ bản. Bạn có thể xây dựng trên infinitum quảng cáo này và tinh chỉnh thuật toán để hoạt động tốt trên tập dữ liệu cụ thể của bạn. Có một triệu cách khác nhau để tấn công vấn đề này, nhưng tôi hy vọng một số đề xuất này hữu ích trong việc giúp bạn bắt đầu.

0

Đối với mẫu này, phương pháp tốt nhất là tìm các điểm dừng đầy đủ mà không theo sau một khoảng trống!

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