문제

조금 미끄럼 방지 요구 사항으로 많은 자연스러운 언어 처리를하고 있습니다. 종종 나는 와 비슷한 일을 얻습니다. - 단어 (또는 그냥 텍스트)를 주어서 어떤 패턴을 찾아서 어떻게 든 단어를 변화시킬 필요가 있습니다. 예를 들어, 나는 미스판을 수정해야 할 수도 있습니다. "Eatin"이라는 단어를 감안할 때 나는 그것을 "먹는"것으로 변형시켜야합니다. 또는 나는 "Ahahaha", "Ahahaha"라는 단어를 "Ahaha"등으로 변형시켜야 할 수도 있습니다.

그래서 일반적인 도구 을 찾고있는 transormation 규칙 을 정의 할 수 있습니다. 규칙은 다음과 같이 보일 수 있습니다 :

 {w}in   ->  {w}ing
 aha(ha)+  ->  ahaha
.

오른쪽의 왼쪽에서 캡처 한 패턴을 사용할 수 있어야합니다.

나는 모든 프로그래밍을 모르는 언어 학자와 일하고, 이상적으로 이 도구는 외부 파일 단순한 규칙 를 사용해야합니다. .

colluure 에서이 프로젝트를하고 있으므로 이상적 으로이 도구는 JVM 언어 (Java, Scala, Clojure) 중 하나에 대한 라이브러리 여야하지만 다른 언어 또는 명령 줄 도구도 괜찮습니다. ...에

"NOFOLLOW"> 게이트 , stanford corenlp , NLTK 그리고 다른 사람들은 그들 모두에서 전문가가 아닙니다. 그래서 내가 필요한 도구를 놓칠 수있었습니다. 그렇다면 알려주세요.

여러 언어로 작업하고 매우 다른 작업을 수행하므로 콘크리트 lemmatizers, 분석기, 콘크리트 언어가 맞지 않아서 콘크리트 보정기가 내 필요에 맞지 않아야합니다. 나는 정말로 더 많은 일반적인 도구가 필요합니다.

upd. 내가 필요한 것의 몇 가지 세부 사항 / 예를 제공 해야하는 것처럼 보입니다.

기본적으로 텍스트를 일종의 정규식으로 대체하는 기능이 필요합니다 (Java의 String.replaceAll()와 유사). 그러나 에서 문자열 텍스트를 사용할 수 있습니다. 예를 들어, 실제 세계 텍스트에서 사람들은 종종 특별한 단어를 강조하기 위해 문자를 반복합니다. Someoone은 "이 영화는 Soooo Booring ..."을 쓸 수 있습니다. 이 반복적 인 "oooo"를 단일 문자로 대체 할 수 있어야합니다. 따라서이 비슷한 규칙이있을 수 있습니다 (이 게시물의 앞부분에서 사용한 것과 유사한 구문) :

{chars1}<char>+{chars2}?  ->  {chars1}<char>{chars2}
.

즉, 일부 문자 (chars1)로 시작하는 단어를 대체하고 적어도 3 개의 문자가 있고 비슷한 문자열을 사용하여 다른 문자 (chars2)로 끝나면 단일만으로는 단일만큼 답습니다. 여기서 키 포인트는 규칙의 왼쪽에 붙잡고 오른쪽에 그것을 사용한다는 것입니다.

도움이 되었습니까?

해결책

I've found http://userguide.icu-project.org/transforms/general to be useful as well for some general pattern/transform tasks like this, ignore the stuff about transliteration, its nice for doing a lot of things.

You can just load up rules from a file into a String and register them, etc.

http://userguide.icu-project.org/transforms/general/rules

다른 팁

I am not an expert in NLP, but I believe Snowball might be of interest to you. Its a language to represent stemming algorithms. Its stemmer is used in the Lucene search engine.

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