2009-11-03 17 views
18

Tôi đang tìm một lớp hoặc phương thức cần một chuỗi dài gồm 100 từ và mã thông báo, loại bỏ các từ dừng và xuất phát để sử dụng trong hệ thống IR.Tokenizer, Stop Word Removal, bắt nguồn từ Java

Ví dụ:

"Con mèo lớn chất béo, cho biết 'hài hước chàng trai của bạn tôi biết' với chuột túi ..."

các tokenizer sẽ loại bỏ các dấu chấm câu và trở lại an ArrayList của các từ

trình xóa từ dừng sẽ xóa các từ như "the", "to", v.v.

phần gốc sẽ làm giảm mỗi từ 'gốc' của chúng, ví dụ 'hài hước nhất' sẽ trở thành vui nhộn

Rất cám ơn trước.

Trả lời

8

AFAIK Lucene có thể làm những gì bạn muốn. Với StandardAnalyzerStopAnalyzer bạn có thể xóa từ dừng. Kết hợp với dự án Lucene contrib-snowball (bao gồm công việc từ Snowball), bạn cũng có thể thực hiện việc bắt đầu.

Nhưng đối với việc ngăn chặn cũng xem xét câu trả lời này: Stemming algorithm that produces real words

+0

hey! @ jitter đi Lucene không giúp đỡ?cần liên kết cụ thể hơn. – jsroyal

6

Đây là những yêu cầu tiêu chuẩn trong Xử lý ngôn ngữ tự nhiên vì vậy tôi sẽ tìm trong các bộ công cụ như vậy. Kể từ khi bạn yêu cầu Java Tôi muốn bắt đầu với OpenNLP: http://opennlp.sourceforge.net/

Nếu bạn có thể nhìn vào các ngôn ngữ khác cũng có NLTK (Python)

Lưu ý rằng "hài hước chàng trai của bạn tôi biết" không phải là cú pháp tiêu chuẩn và điều này làm cho nó khó xử lý hơn "Bạn là người hài hước nhất mà tôi biết". Không phải không thể, nhưng khó hơn nhiều. Tôi không biết bất kỳ hệ thống nào có nghĩa là "của bạn" với "bạn".

+0

http://en.wikipedia.org/wiki/Natural_language_processing_toolkits – Fedearne

+0

Có mô hình chủ đề trong openNLP không? không thấy điều đó trong phần mô tả. –

0

Dưới đây là danh sách toàn diện của NLP tools. Đôi khi nó có ý nghĩa để tạo ra những chính mình như họ sẽ được nhẹ hơn và bạn sẽ có quyền kiểm soát nhiều hơn để các hoạt động bên trong: sử dụng biểu thức chính quy đơn giản cho tokenizations. Đối dừng lời chỉ đẩy danh sách dưới đây hoặc một số danh sách khác để một HashSet:

common-english-words.txt

Đây là một trong nhiều Java implementation of porter stemer).

1

Tôi đã giải quyết vấn đề về một số tác vụ mà tôi đã làm việc cùng, vì vậy hãy để tôi đưa ra đề xuất trình thông báo. Vì tôi không nhìn thấy nó trực tiếp như là một câu trả lời, tôi thường sử dụng edu.northwestern.at.utils.corpuslinguistics.tokenizer.* làm gia đình của tôi của tokenizers. Tôi thấy một số trường hợp tôi đã sử dụng lớp PennTreebankTokenizer. Đây là cách bạn sử dụng:

WordTokenizer wordTokenizer = new PennTreebankTokenizer(); 
    List<String> words = wordTokenizer.extractWords(text); 

Liên kết tới tác phẩm này là here. Chỉ là một tuyên bố từ chối trách nhiệm, tôi không có liên kết với Northwestern, nhóm hoặc công việc họ làm. Tôi chỉ là một người sử dụng mã đôi khi.

+0

nơi tôi có thể tải xuống bộ mã thông báo tây bắc từ đâu? – Hector

+0

@Hector Thử tại https://bitbucket.org/pibburns/morphadorner/src/9c3188655f6386e65c93f315f86b3a176607c8f7/src/edu/northwestern/at/morphadorner/corpuslinguistics/tokenizer/?at=default. Có lẽ tôi đã đưa ra gói sai. Sau 4 năm rất khó để xem nếu gói thay đổi hoặc tôi đã sai ban đầu – demongolem

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