중요한 단어를 찾기위한 언어 파싱


9

어휘 주제에 접근하는 방법에 대한 의견과 이론을 찾고 있습니다.

문자열 모음이 있다고 가정 해 봅시다. 한 문장 또는 여러 문장 일 수 있습니다. 이 문자열을 구문 분석하고 가장 중요한 단어를 제거하고 싶습니다. 어쩌면 단어가 중요 할 가능성을 나타내는 점수로 평가하고 싶습니다.

내가 무엇을 의미하는지 몇 가지 예를 봅시다.

예 # 1 :

"난 정말 커리 그를 원하지만 살 여유가 없어!"

이것은 매우 기본적인 예이며 단 한 문장입니다. 인간으로서, 나는 "Keurig"가 여기서 가장 중요한 단어임을 쉽게 알 수 있습니다. 또한 "afford"는 상대적으로 중요하지만 문장의 기본 요점은 아닙니다. "I"라는 단어가 두 번 나타나지만 실제로 정보를 알려주지 않기 때문에 전혀 중요하지 않습니다. 다음과 같은 단어 / 점수 해시를 기대할 수 있습니다.

"Keurig" => 0.9
"afford" => 0.4
"want"   => 0.2
"really" => 0.1
etc...

예 # 2 :

"그냥 내 인생에서 최고의 수영 관행 중 하나를 가졌었다. 희망적으로 나는 내 시간을 경쟁에서 유지할 수 있기를 바란다. 만일 내가 방수 시계를 가지고 다니는 것을 기억했다면."

이 예에는 여러 문장이 있으므로 전체적으로 더 중요한 단어가 있습니다. 예제 # 1의 요점 연습을 반복하지 않으면 아마도 "수영"(또는 "수영 연습"), "경쟁", "시계"(또는 "방수"라는 두 가지 또는 세 가지 중요한 단어가 나올 것으로 예상됩니다. 하이픈을 처리하는 방법에 따라 "시계"또는 "비방 수 시계").

이와 같은 몇 가지 예가 주어지면 어떻게 비슷한 일을 하시겠습니까? 프로그래밍에 기존 (오픈 소스) 라이브러리 나 알고리즘이 이미 있습니까?


또한 이것은 programmers.stackexchange.com의 첫 번째 게시물입니다. 이것이 잘못된 장소이며 StackOverflow 또는 다른 SE 사이트에 속하는 경우 사과드립니다. 필요한 경우 질문을 이동하게되어 기쁩니다.
Matt Huggins

나는 당신이 무엇을 성취하려고하는지 질문에서 이해하지 못합니다. 특히 첫 번째 예에서 "Keurig"와 "afford"라는 단어는 간단한 통계 검사로 식별 할 수 있습니다. 문장의 단어 중에서이 두 단어는 다른 단어보다 영어에서 덜 일반적입니다. 따라서 단어 빈도 데이터베이스가 있으면 해당 단어를 쉽게 식별 할 수 있습니다.
Qwertie

답변:


5

당신이 묘사 한 문제에 대해 분명히 생각하는 사람들이 있습니다. João Ventura와 Joaquim Ferreira da Silva의 텍스트에서 관련 단일 단어순위 및 추출 (pdf)은 기존 순위 기술에 대한 소개와 개선 제안입니다. 그들이 설명하는 모든 기술은 한두 줄의 텍스트에 대해 말뭉치 (많은 텍스트)에 의존합니다. 당신의 모음집은 모든 샘플의 수집이거나 특정 소스에서 수집 된 샘플의 많은 코포 라 여야합니다. 한 단어 (유니 그램) 관련성은 해결되지 않은 문제라는 점을 명심하십시오. 종이가 설명하는 것처럼 :

"... 순전히 통계적 방법을 사용하면 이러한 종류의 분류가 항상 간단하거나 정확하지는 않습니다. 왜냐하면 관련성의 개념은 이해하기 쉬운 개념이지만 일반적으로 관련성과 비 관련성을 분리하는 국경에 대한 합의가 없기 때문입니다. 예를 들어, "공화국"또는 "런던"과 같은 단어는 유의미한 관련성이 있으며 "또는"및 "since"와 같은 단어는 전혀 관련이 없지만 "읽기", "종료"및 "다음"과 같은 단어는 어떻습니까? "의미 적 가치에 대한 합의가 없기 때문에 많은 단어가 문제가됩니다."

많은 오픈 소스 자연 언어 처리 툴킷이 있습니다. (주의하십시오. 일부 도구는 연구용으로 무료이지만 상업용으로 라이센스가 필요합니다.) 선택한 접근 방식에 관계없이보다 편리하게 생활 할 수 있습니다.

NLTK (Natural Language Toolkit)에 가장 익숙합니다 . 사용하기 쉽고 잘 문서화 되어 있으며 Python을 사용한 자연어 처리 (무료로 온라인으로 제공) 책에 실려 있습니다. NLTK가 당신을 위해 무엇을 할 수 있는지에 대한 간단한 예로서, 품사 태깅을 사용한다고 상상해보십시오 . 각 단어의 품사를 식별하면 적절한 명사를 매우 중요하게 생각하고 형용사를 덜 고려할 수 있습니다. 동사는 중요하고 부사는 덜 중요합니다. 최첨단 순위는 아니지만 약간의 노력으로 유용한 정보를 얻을 수 있습니다. 보다 정교한 분석으로 넘어갈 준비가되면 NLTK의 토큰 화, 태그 지정, 청크 및 분류 기능이 내장되어 솔루션의 다른 세부 사항에 집중할 수 있습니다.


1

자연어 처리는 많은 공식적인 연구가 수행되는 자체 학문입니다. 나는 거기를 보면서 시작합니다.

나는 또한 나의 필요를 재고 할 것이다. 50 년 이상의 연구 끝에도 최고의 컴퓨터 과학자들이 생각 해낸 것은 Siri입니다. 컴퓨터가 규칙적으로 말한 것을 성공적으로 수행 할 것으로 기대하지는 않습니다.

연설에 특정 제한이있는 경우 (Siri와 같이 간단한 명령이나 질문이 있다고 가정하면) 더 좋습니다. 내 요구를 다시 고려할 때 (NLP가 필요하다고 가정) 내 제한을 정의하는 것이 포함됩니다. 그 후 나는 많은 예를 찾아야 할 것입니다. 부분적으로 내가 생각 해낸 것을 테스트하기 위해 많은 현대적인 솔루션에는 기계 학습이 포함됩니다. 학습 곡선에 대한 입력으로 이러한 예가 필요합니다.

요약하면, 나는 이런 종류의 맥락없는 시나리오에서 어떤 것이 당신에게 좋은 점수를 줄 수 있을지 의문입니다.


Siri 파기 또는 승진을위한 +1 ...
Aaron McIver
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.