적절한 다음 단어 예측을 달성하기 위해 어떤 알고리즘을 사용할 수 있습니까?


10

"다음 단어 예측"을 구현하는 좋은 방법은 무엇입니까? 예를 들어, 사용자는 "I am"을 입력하고 시스템은 다음 단어로 "a"및 "not"(또는 다른 것)을 제안합니다. Markov Chains와 일부 교육 텍스트를 사용하여이를 달성하는 방법을 알고 있습니다. 그러나 나는이 방법이 매우 제한적이며 매우 간단한 경우에 적용된다는 어딘가를 읽었습니다.

신경망과 유전자 알고리즘의 기본 사항을 이해하지만 (심각한 프로젝트에서 사용하지는 않았지만) 도움이 될 수 있습니다. 적절한 훈련 텍스트 (예 : 신문 기사 및 사용자 자신의 타이핑)가 다음 단어에 대해 합리적으로 적절한 제안을 제시 할 수있는 알고리즘이 있는지 궁금합니다. 알고리즘에 연결되지 않으면이 문제를 공격하는 일반적인 고급 방법을 사용하는 것이 좋습니다.

답변:


9

n-gram을 살펴보십시오 . 하나의 n- 그램은 일련의 n단어입니다. 귀하의 경우에는 당신이 원하는 n일을 3당신이 필요로하기 때문에, query words과를 resulting word. 하나의 3 그램은 예를 들어 "나는 피곤하다", 다른 하나는 "나는 행복하다"입니다.

그런 다음 필요한 것은 영어와 같이 대상 언어를 통해 수집 된이 3 그램의 모음입니다. 영어로 작성된 모든 내용을 수집 할 수 없으므로 선택해야합니다. 이러한 대표 텍스트 선택을이라고합니다 corpus. 말뭉치가 좋으면 영어로 된 세 개의 특정 단어 시퀀스가 ​​얼마나 자주 발생하는지 알려줍니다. 이로부터 3 그램의 확률을 계산할 수 있습니다.

이런 종류의 데이터를 수집하는 것이 가장 어려운 부분입니다. 모든 3 그램의 목록을 확률과 함께 사용하면 "I am"으로 시작하는 모든 3 그램으로 목록을 필터링 할 수 있습니다. 그런 다음이 목록을 확률과 성 : 예측으로 정렬 하십시오.


n좋습니다 . 최적의 값으로 훌륭한 결과를 얻을 수 있습니까? 그것은 항상하지 않습니다 예측 제 3 단어로, 당신은 볼
yati sagade

2
음, 값이 클수록 n목록이 길어 지므로 더 정확한 예측을 제공 할뿐만 아니라 검색하는 데 비용이 더 많이 듭니다. 따라서 정밀도와 계산 시간 간의 균형을 유지합니다.
sebastiangeiger

2
또한 더 큰 n- 그램이 실제로 유용하려면 더 큰 모음이 필요합니다.
liori

4
음, 이것은 말 그대로 마르코프 체인입니다 ... 그뿐만 아니라 말 그대로 가장 교과서의 예입니다 ...
Justin L.

2

문제 도메인이 문자열 검색의 하위 집합 인 것 같습니다. 공백을 포함하도록 단어를 확장하면 여기에서 퍼지 문자열 일치를 적용 할 수 있습니다.

사전 외에 교육 중에 모든 사용자 입력을 한 단어로 고려 / 허용 할 수 있습니다. 이를 통해 다음 단어를 제안 할 수 있지만 단어 나 구의 자동 완성을 제안합니다.

다음은 퍼지 문자열 검색 알고리즘의 컴파일 링크입니다

http://ntz-develop.blogspot.com/2011/03/fuzzy-string-search.html


1

(통계) 언어 모델을 찾고 있습니다 .

통계 언어 모델은 확률 분포를 통해 일련의 m 단어 P(w_1,...,w_m)에 확률을 할당합니다 ...

음성 인식 및 데이터 압축에서 이러한 모델은 언어의 속성을 캡처하고 음성 시퀀스에서 다음 단어를 예측하려고 시도합니다.


와. 그러나 @sebastiangeiger의 대답은 n = 3에 대해 이것을 설명한다고 생각합니다.
yati sagade

그의 대답은 특정 언어 모델, 즉 n-gram 모델을 설명합니다. 구문 언어 모델 ( goo.gl/ffPOg ) 과 같은 다른 언어 모델이 있습니다 .
user3287
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.