문제

나는 많은 100 개의 단어와 토큰 화를 할 수있는 수업이나 방법을 찾고 있으며 IR 시스템에서 사용하기 위해 중지 단어와 줄기를 제거합니다.

예를 들어:

"큰 뚱뚱한 고양이는 캥거루에 '내가 아는 가장 재미있는 사람'이라고 말했다."

토큰 화기는 문장 부호를 제거하고 반환합니다 ArrayList 단어의

중지 단어 리무버는 "the", "to"등과 같은 단어를 제거합니다.

스템머는 각 단어를 '뿌리'로 줄일 수 있습니다. 예를 들어 '가장 재미있는'것은 재미있을 것입니다.

미리 감사드립니다.

도움이 되었습니까?

해결책

Afaik 루센 원하는대로 할 수 있습니다. 와 함께 StandardAnalyzer 그리고 StopAnalyzer 당신은 중지 단어 제거를 할 수 있습니다. 와 함께 Lucene contrib-snowball (작업 포함 스노볼) 프로젝트 당신도 줄기도 할 수 있습니다.

그러나 스템 밍은 다음에 대한이 답을 고려하십시오. 진짜 단어를 생성하는 줄무늬 알고리즘

다른 팁

이것들은 자연어 처리의 표준 요구 사항이므로 그러한 툴킷을 살펴 보겠습니다. Java가 필요하기 때문에 OpenNlp로 시작하겠습니다.http://opennlp.sourceforge.net/

다른 언어를 볼 수 있다면 NLTK (Python)도 있습니다.

"내가 아는 당신의 가장 재미있는 사람"은 표준 구문이 아니며, 이것은 "당신은 내가 아는 가장 재미있는 사람입니다"보다 처리하기가 더 어렵습니다. 불가능하지는 않지만 훨씬 어렵습니다. 나는 "당신의"와 "당신"과 동일시하는 어떤 시스템도 모릅니다.

나는 내가 함께 일한 많은 작업에 대한 문제를 다루었으므로 토큰 화기 제안을하겠습니다. 답으로 직접 주어진 것을 보지 않기 때문에 종종 사용합니다. edu.northwestern.at.utils.corpuslinguistics.tokenizer.* 토큰 화제 가족으로서. 나는 내가 사용한 많은 사례를 본다 PennTreebankTokenizer 수업. 사용 방법은 다음과 같습니다.

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

이 작업에 대한 링크는입니다 여기. 면책 조항 일뿐입니다. 저는 노스 웨스턴, 그룹 또는 그들이하는 일과 제휴가 없습니다. 나는 가끔 코드를 사용하는 사람 일뿐입니다.

다음은 포괄적 인 목록입니다 NLP 도구. 때때로 더 가벼워지기 때문에 직접 만들어내는 것이 합리적이며 내부 작업을 더 많이 통제 할 수 있습니다. 토큰 화를 위해 간단한 정규 표현식을 사용하십시오. 중지 단어의 경우 아래 목록 또는 다른 목록을 해시 세트로 밀어 넣습니다.

공통-영어 단어 .txt

여기에 많은 것 중 하나가 있습니다 Porter Stemer의 Java 구현).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top