2011-01-08 2 views
3

저는 NLP (Natural Language processing)에 새로 들어설 수 있습니다. 프로젝트를 시작하기 위해 필자는 두 가지 유사한 문장을 인식 할 수있는 시스템을 개발 중입니다. Lexical, Syntax, Semantic의 세 가지 수준에서 다양한 측정을 적용 할 것입니다. 어휘 수준에서 코사인 유사성, 일치 계수, jaccard 계수 ... 등과 같은 여러 유사성 측정 값이 있습니다. 셰필드 대학 (University of Sheffield)에서 개발 한 simMetrics 패키지는 다양한 유사성 측정을위한 훌륭한 패키지입니다. 여기에는 유사성 측정이 많이 포함되어 있습니다. 그러나 levenshtein 거리 및 jaro-winkler 거리 측정의 경우 코드는 * 문자 만 가능합니다. 코드는 * 입니다. 문장 수준에서 코드를 작성하십시오 (즉, 한 단어를 문자 현명한 대신 단위로 고려하십시오). 또한 맨해튼 거리에 대한 코드는 SimMetrics에 없습니다 ... 나는 전문가에게 요구 된 코드를 개발하기위한 제안을 주거나 (또는) 위에서 언급 한 조치에 대한 문장 수준의 코드를 제공하도록 요청합니다.문장 수준의 유사성을 이용한 의역 인식

많은 도움을 주신 귀하의 시간과 노력에 감사드립니다.

+0

이것은 별다른 문제가 아닙니다. 나는이 분야에서 많은 전문 기술이나 선행 기술을 찾을 수 있을지 의심 스럽다. – Cerin

+0

NLP에 완전히 익숙하다면 정말 작고 제한적인 프로젝트를 시도해야한다고 생각합니다. –

+0

'JNLP'는 'NLP'와 아무 관련이 없습니다. 태그 제거 중. –

답변

2

Chris가 제안했듯이, 이것은 초보자를위한 중요한 프로젝트입니다. 청킹과 같은 간단한 일 (상대적으로 지루한 경우)을 시작하는 것이 좋습니다.

Python NLTK 라이브러리에 대한 문서와 책을 살펴보십시오. 찾고있는 것과 가까운 샘플이 있습니다. 예를 들어, 한 문장에 다른 문장이 들어있는 것이 당연하다. 거기서 '그럴듯한'것을 주목해라. 예술의 상태는 단순한 예/아니오 또는 심지어 확률이 충분하지 않다.

3

저는 몇 년 동안 NLP 분야에서 일해 왔으며, 답변/의견을 제공 한 사람들과 완전히 동의합니다. 이것은 정말로 깰 수있는 어려운 견과입니다! 하지만, 몇 가지 포인터를 제공하겠습니다.

(1) 어휘 유사성 : Jaro-Winkler 거리를 문장 수준으로 일반화하려고 시도하는 대신 문자 수준 또는 단어 수준의 단어를 개발하면 훨씬 더 유익 할 것입니다. 로그 - 가능성 (log-likelihood)을 계산할 수있다. 더 자세히 설명하겠습니다. 코퍼스를 기반으로 언어 모델을 교육하십시오. 그런 다음 코퍼스의 문장과 유사하거나 유사하지 않은 후보 문장을 많이 봅니다. 이 테스트 문 각각에 대한 로그 가능성을 계산하고 유사성을 결정하기위한 컷오프 값을 설정합니다.

(2) 문법적 유사성 : 지금까지는 스타일 론적 유사성만으로 이것을 포착 할 수있었습니다. 이를 위해서는 PCFG 구문 분석 트리 (또는 TAG 구문 분석 트리, TAG = 트리 인접 문법, CFG 일반화)를 사용해야합니다.

(3) 의미 상 유사성 : WordNet과 같은 리소스를 사용하고 synsets 간의 유사성을 확인하는 것만으로 생각할 수 있습니다. 그러나 이것도 간단하지 않습니다. 첫 번째 문제는 두 개 (또는 그 이상)의 문장 중 어떤 단어가 "상응하는 단어"인지 식별하여 의미를 확인하는 것입니다.