2010-07-05 5 views
3

나는 약 30 단어 및 기사의 집합을 포함하는 정지 단어의 명부가있다.자바에서 Stopwords를 제거하십시오

나는 각 기사를 분석하고 그 기사에서 그 정지 단어를 제거하고 싶다.

가장 효과적인 방법은 무엇인지 잘 모릅니다.

예를 들어 스톱 목록을 반복 할 수 있으며 공백이 있으면 기사의 단어를 바꿀 수 있지만 좋지 않습니다. 단어 입력의 각 단어에 대한

  • java.util.Set
  • 분할 입력에

    감사

  • 답변

    4
    • 넣고 정지 단어가 중지 단어의 세트에 포함 않다면, 참조
    • 하지 않을 경우 출력에 쓰기
    +0

    감사합니다. 입력을 저장하려면 어레이를 사용해야합니까? – Elham

    +0

    @ 엘햄 : 옵션입니다. 입력이 매우 큰 경우 스캐너를 사용하여 한 번에 한 단어 씩 읽으면 메모리에 완전히 저장되지 않도록 할 수 있습니다. –

    1

    단어 교체가 비효율적입니다. 최선의 방법은 단어별로 기사 단어를 구문 분석하고 각 단어를 새 StringBuffer에 복사하는 것입니다. 비공식적 인 경우가 아니라면 원하는 곳에 복사하십시오. StringBuffer는 String보다 훨씬 효율적입니다.

    정지 단어를 저장하는 방법은 30 분 정도면 중요하지 않습니다. 아마도 세트가 좋은 선택 일 것입니다.

    0

    Sun Java Tutorials에 따르면 정규 표현식에 Perl 호환 \b 구분자를 사용할 수 있습니다. 단어를 둘러싸는 경우 단어 뒤에 단어가 오게되거나 구두점 또는 공백이 앞에 붙습니다.

    0

    입력 단어를 읽고 중지 단어 목록에없는 경우에만 StringBuilder (또는 결과를 저장하는 모든 곳)에 복사합니다. 정지 단어를 HashTable과 같은 것으로 넣으면 더 빨리 검색 할 수 있습니다.

    편집 : oops, 내가 무슨 생각을했는지 모르겠지만 HashTable (또는 다른 사전)이 아니라 세트를 원한다.