2010-02-20 35 views
11

Tôi muốn biết khung công tác dựa trên Java mã nguồn mở tốt nhất cho Khai thác văn bản là gì, để sử dụng Botg Machine Learning và các phương thức từ điển.Khung khai thác văn bản nguồn mở Java

Tôi đang sử dụng Mallet nhưng không có nhiều tài liệu và tôi không biết liệu nó có phù hợp với tất cả các yêu cầu của tôi hay không.

+1

Tôi có một câu hỏi liên quan qua tại http://stackoverflow.com/questions/2293636/what-is-a-good-java-library-for-parts-of-speech - gắn thẻ – Glenn

+0

Cảm ơn: P. Nên được tốt đẹp để sử dụng một trong những người gắn thẻ POS với một khuôn khổ rộng đáp ứng tất cả các yêu cầu IR khi sử dụng phương pháp ML. Lingpipe rất tốt cho các từ điển, nhưng nó không phải là miễn phí cho các công cụ thương mại. –

Trả lời

4

Mặc dù không phải là khung khai phá văn bản chuyên biệt, Weka có một số trình phân loại thường được sử dụng trong các tác vụ khai phá văn bản như: SVM, kNN, NaiveBayes đa thức, trong số những thứ khác.

Nó cũng có một vài bộ lọc để xóa dữ liệu văn bản như bộ lọc StringToWordVector có thể thực hiện chuyển đổi TF/IDF.

Kiểm tra trang web Weka wiki để biết thêm thông tin.

+0

Vấn đề là tôi cần phải thực hiện nhận dạng thực thể được đặt tên (NER) và Weka không cung cấp các tính năng để trích xuất các tính năng từ các từ, chẳng hạn như các đặc điểm hình thái và hình thái. Nhưng sẽ rất tuyệt nếu tôi có thể sử dụng phương pháp của Weka trên IR. –

+1

Tôi nghĩ rằng trang Wikipedia về chủ đề có một vài liên kết đến một số gói cho NER. Ngoài ra, tôi chỉ gặp dự án UIMA của Apache, có lẽ bạn sẽ thấy nó hữu ích: http://incubator.apache.org/uima/index.html – Amro

+0

Vâng tôi biết UIMA. Nhưng nó không cung cấp phương pháp ML. Nó là một giải pháp hoàn hảo cho các hệ thống tạo ra NER với các phương pháp dựa trên từ điển. Tôi không biết cách tích hợp các phương thức ML vào UIMA. –

2
+0

Tôi đã nhìn thấy trang web này, nó thực sự là tốt đẹp, cảm ơn. Nhưng tôi đã hỏi ý kiến ​​phản hồi của bạn. Tôi đã thử một số trong số họ nhưng tôi không biết cái nào là tốt nhất. Hoặc thậm chí nếu tôi phải sử dụng một, hai hoặc nhiều khung công tác để hoàn thành nhiệm vụ của mình. –

+0

@ukrania Xin lỗi, tôi không phải là người thích hợp. Chúc may mắn. –

0

Chúng tôi sử dụng lucene để xử lý luồng trực tiếp từ internet. Nó có một api java bản địa.

http://lucene.apache.org/java/docs/

Sau đó bạn có thể sử dụng quản tượng mà là một loạt các thuật toán học machien mà hoạt động trên đầu trang của Lucene.

http://lucene.apache.org/mahout/

+0

Nó có thể sử dụng mahout để thực hiện NER? –

2

Tôi đã sử dụng LingPipe - một bộ các thư viện Java để phân tích ngôn ngữ của ngôn ngữ loài người - khai thác văn bản (và có liên quan khác) nhiệm vụ.

Nó là một rất cũng ghi nhận gói phần mềm, và các trang web chứa một số hướng dẫn mà triệt để giải thích làm thế nào để làm một nhiệm vụ nhất định với LingPipe, chẳng hạn như named entity recognition. Ngoài ra còn có một nhóm tin tức, trong đó bạn có thể đăng bất kỳ câu hỏi nào về phần mềm (hoặc các nhiệm vụ liên quan đến NLP) và có trả lời nhanh từ các tác giả của gói; và tất nhiên, một số blog.

Mã nguồn cũng rất dễ theo dõi và được ghi lại đầy đủ, đối với tôi, luôn là một điểm cộng lớn.

Đối với thuật toán Machine Learning, có rất nhiều từ Naïve Bayes đến Conditional Random Field. Mặt khác, đối với các thuật toán khớp từ điển, chúng có một số ExactDicitonaryChunker, đây là một thuật toán thực hiện thuật toán Aho-Corasich (một thuật toán rất, rất nhanh cho tác vụ này). Tóm lại, tôi nghĩ rằng nó là một trong những gói phần mềm NLP tốt nhất cho Java (tôi đã không sử dụng tất cả các gói duy nhất được ra khỏi đó, vì vậy tôi không thể nói đó là tốt nhất), và tôi chắc chắn khuyên bạn nên nó cho công việc bạn có trong tầm tay.

+1

@JG Cảm ơn lời khuyên của bạn :). Tôi đang làm hệ thống của tôi để nghiên cứu. Tôi phải trả một cái gì đó ngay cả khi tôi thực hiện một công cụ thương mại? Những hạn chế là gì? –

2

Bạn có thể đã biết về GATE: http://gate.ac.uk/

... nhưng đó là những gì chúng tôi đã sử dụng (ít ngày công việc của tôi) cho rất nhiều vấn đề khai thác văn bản khác nhau. Nó khá linh hoạt và cởi mở.

+0

@PSpeed ​​Vâng tôi đã biết rồi. GATE rất giống với UIMA. Trên thực tế, GATE là người đầu tiên xuất hiện. Tuy nhiên, tôi không biết nếu nó có thể thực hiện các phương pháp ML với GATE. Bạn có biết gì về điều đó không? –

+0

Tôi nghĩ GATE linh hoạt hơn ... chúng tôi thấy UIMA rất hạn chế. Tôi không có kinh nghiệm cụ thể với ML nhưng nó chỉ có vẻ như nếu ai đó đang làm việc trên nó thì GATE sẽ là một nền tảng có khả năng. Đó là nơi tôi có thể bắt đầu nếu tôi viết một cái gì đó như thế ... nhưng tôi đã không tìm kiếm bất kỳ dự án cụ thể nào. – PSpeed

+0

Có vẻ như đã có ít nhất một số công việc trong ML và GATE: http://gate.ac.uk/gate/doc/plugins.html#Machine_Learning – PSpeed

1

Tôi đã tạo một entropy tối đa có tên là bộ nhận dạng đối tượng cho dữ liệu CoNLL sử dụng OpenNLP MaxEnt http://sourceforge.net/projects/maxent/ cho một khóa học một lần.

Yêu cầu nhiều tiền xử lý dữ liệu với các tập lệnh perl tùy chỉnh làm cho tất cả các tính năng được trích xuất thành các vectơ số đẹp gọn gàng.

6

Tôi thành thật nghĩ rằng một số câu trả lời được trình bày ở đây rất tốt. Tuy nhiên, để đáp ứng các yêu cầu của tôi, tôi đã chọn sử dụng Apache UIMA với ClearTK. Nó hỗ trợ một số phương pháp ML và tôi không có bất kỳ vấn đề giấy phép. Ngoài ra, tôi có thể tạo các trình bao bọc cho các phương pháp ML khác, và tôi tận dụng lợi thế của khung công tác UIMA, được tổ chức rất nhanh và nhanh chóng.

Cảm ơn tất cả các câu trả lời thú vị của bạn.

Best Regards, ukrania

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