문장의 의미를 결정할 수있는 응용 프로그램을 작은 조각으로 나누어 구현하려고합니다. 그래서 나는 어떤 단어가 주어, 객체 등인지 알 필요가있다. 그래서 나의 프로그램은이 문장을 다루는 방법을 알 수있다.제목, 대상 및 기타 단어를 결정하는 방법은 무엇입니까?
답변
이것은 공개적인 연구 문제입니다. Wikipedia에 대한 개요는 http://en.wikipedia.org/wiki/Natural_language_processing입니다. "시간이 화살처럼 날아 오르고, 과일이 바나나처럼 날아갑니다"와 같은 문구를 고려하십시오. 단어를 모호하게 구분하는 것은 쉽지 않습니다.
나는 이렇게 할 수있는 "간단한"방법이 없다고 생각합니다. 그러나 언어 분석기 (상당히 가능)를 구축해야하지만 예외적 인 경우가 많습니다. 이것이 바로 언어 분석기를 구현하는 이유입니다.
Natural Language Toolkit은 정확히 이런 종류의 것입니다.
이 매뉴얼의이 섹션을 참조하십시오 : Categorizing and Tagging Words를 - 여기 추출물의 :
>>> text = nltk.word_tokenize("And now for something completely different")
>>> nltk.pos_tag(text)
[('And', 'CC'), ('now', 'RB'), ('for', 'IN'), ('something', 'NN'),
('completely', 'RB'), ('different', 'JJ')]
"여기에 우리가 및가하는 등위 접속사 CC 것을 볼, 지금 및 완전히은 RB입니다, 또는 부사; 은이고, 전치사 : 무언가은 NN이며, 은이며, 형용사는 JJ, 형용사입니다.
NLTK는 이런 종류의 좋은 자원이지만 품사 태깅은 주체/개체 역할을 구별하기에 충분한 문법 정보를 제공하지 않습니다. 제 8 장 (문장 구조 분석) 매뉴얼이 더 적절할 것이라고 생각합니다. – Stompchicken
당신이 언급 한 특정 문제, 즉 주제와 객체의 식별은 syntactic parsing입니다. Stanford University에서 개발 한 파싱 소프트웨어 this demo을 사용하여 구문 분석이 어떻게 작동하는지 알 수 있습니다.
그러나 구문 구문 분석은 문장의 의미를 결정하지 않으며 구조 만 결정합니다. 결정적인 의미 (의미론)는 일반적으로 매우 어려운 문제이며 인간이하는 것과 같은 방식으로 문장을 실제로 '이해할 수있는 기술은 없습니다. 일반적인 해결책은 없지만 매우 제한된 주제 도메인에서 무언가를 할 수 있습니다. 예를 들어, 좁은 주제에 대해 분석하고자하는 데이터가 사람들이 말하는 '일'의 제한된 집합입니까?
+1, 정확히 똑같은 견적으로 답변을 시작했습니다! :) –