문장 유사성을위한 가장 실용적인 알고리즘


18

나는 S1과 S2의 두 문장을 가지고 있는데, 둘 다 단어 수가 (일반적으로) 15 미만입니다.

구현하기 쉬운 가장 실질적으로 유용하고 성공적인 (머신 러닝) 알고리즘은 무엇입니까 (아키텍처가 Google Inception 등과 같이 복잡하지 않으면 신경망은 괜찮습니다).

너무 많은 시간을 투자하지 않고 잘 작동하는 알고리즘을 찾고 있습니다. 성공적이고 사용하기 쉬운 알고리즘이 있습니까?

이는 클러스터링 범주에 속할 필요는 없습니다. 내 배경은 기계 학습에서 왔으므로 어떤 제안이라도 환영합니다 :)


무엇을 구현 했습니까? 나는 또한 똑같이 직면하고 있으며, 업데이트를 계속하는 코퍼스에서 'k'관련 기사에 대한 솔루션을 생각해 내야합니다.
Dileepa

답변:


16

벡터 공간에 대한 코사인 유사성이 될 수 있습니다 당신은 대답 : http://blog.christianperone.com/2013/09/machine-learning-cosine-similarity-for-vector-space-models-part-iii/

또는 각 문장의 고유 벡터를 계산할 수 있습니다. 그러나 문제는 유사성이 무엇입니까?

"이것은 나무입니다", "이것은 나무가 아닙니다"

문장의 의미 적 의미를 확인하려면 워드 벡터 데이터 셋이 필요합니다. 워드 벡터 데이터 셋을 사용하면 단어 간의 관계를 확인할 수 있습니다. 예 : (왕-남자 + 여자 = 여왕)

Siraj Raval에는 워드 벡터 데이터 셋을 생성하기위한 훌륭한 파이썬 노트북이 있습니다 : https://github.com/llSourcell/word_vectors_game_of_thrones-LIVE


8

시도 할 수있는 한 가지 방법은 단어 포함 알고리즘 (word2vec, 장갑 등)으로 생성 된 단어 벡터를 평균화하는 것입니다. 이 알고리즘은 각 단어에 대한 벡터를 생성하며 이들 사이의 코사인 유사성은 단어 간의 의미 론적 유사성을 나타냅니다. 문장 중 평균 벡터의 경우. 이 방법들에 대해 더 잘 알기위한 좋은 출발점은이 논문입니다 : 문장 삽입이 의미를 잘 포착하는 방법 . 문장 삽입 방법에 대해 설명합니다. 또한 저자들은 컴포지션 n-Gram 기능을 사용하여 문장 삽입 에 대한 감독되지 않은 학습 을 살펴보면서 자신의 접근 방식이 최첨단 방법을 능가한다고 주장합니다. 또한이 github 저장소 에 코드와 사용 지침을 제공합니다 .



2

https://github.com/seatgeek/fuzzywuzzy#usage를 확인 하십시오 . fuzzywuzzy는 문자열 / 텍스트 매칭을위한 멋진 라이브러리로, 두 문장의 유사도에 따라 0에서 100 사이의 숫자를 제공합니다. Levenshtein Distance를 사용하여 사용이 간편한 패키지의 시퀀스 간 차이를 계산합니다. 또한 fuzzywuzzy가 작업을 수행하는 방법에 대한 자세한 설명은 블로그 게시물을 확인하십시오 . 이 블로그는 또한 fuzzywuzzy 작가에 의해 작성되었습니다


1

이 블로그에는 짧은 텍스트 유사성을위한 솔루션이 있습니다. 그들은 주로 BERT 신경망 모델을 사용하여 문장 사이의 유사점을 찾습니다. https://medium.com/@vimald8959/sentence-categorisation-short-text-similarity-61bb88fae15e


안녕하세요, Data Science Stack Exchange에 오신 것을 환영합니다! 외부 웹 사이트에서 솔루션을 참조 할 때는 답변에 요약을 작성하십시오. 실제로, 이것은 읽기 쉬워지며 대상 페이지가 변경되거나 링크가 끊어 질 경우 답변이 더 이상 사용되지 않게합니다.
Romain Reboulleau

좋아, 이건 정말 좋은 일이야. 그래서 그들은 기본적으로 BERT를 사용합니까? @RomainReboulleau는 확실히 맞습니다!
DaveTheAl
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.