0

다른 알고리즘을 연구했지만 찾고있는 것을 찾지 못했습니다. Levenstein 거리 (같은 길이의 문자열 만 좋은)동일한 주제에 대한 문장을 일치시키는 알고리즘

해밍 거리가 내가 무엇을 찾고 있어요 것은 같은 생각에 대한 문장을 찾아 낼 것입니다 무언가이다

(새끼 고양이와 sitten 같은 유사한 단어를 찾습니다). 예를 들어

:

주제에 sentence 1 and 2하지만 하지sentence 3 or 4을 고려할 위해 내가 찾고 있어요 무엇

Sentence 1: Josh got hurt while playing in the park. 
Sentence 2: Josh fell off the slide and got hurt at the park. 
Sentence 3: Be careful at the park, your kids could get hurt. 
Sentence 4: Josh likes to go shopping. 

.

문장의 각 단어를 비교해 볼 수있을 것 같습니까?

나는 올바른 방향으로 나를 지적 할 수있는 사람을 대단히 감사하게 생각합니다.

+0

"놀이터 장비에서 떨어진 Josh는 부상을 입었습니까?" –

+0

예, 그렇습니다. – Joel

+1

그러면 꽤 좋은 자연어 처리가 필요할 것입니다. –

답변

3

일반적으로 자연어 처리 (NLP)를 사용해야합니다. 주제에 익숙하지 않다면 nltk를 살펴 보시기 바랍니다. 다양한 NLP 문제를위한 도구가 포함 된 Python 라이브러리입니다. 그들은 또한 당신이 필요로 할지도 모르는 도구를 빨리 살펴볼 수있는 무료 책을 가지고 있습니다.

www.nltk.org/book/

가 나는 숨겨진 '주제'의 관점에서 사람들이 모델 문서들이 공유하는 방식을 볼 수 http://en.wikipedia.org/wiki/Topic_model

1

체크 아웃 도움이되기를 바랍니다. 몇 가지 일반적인 모델과 알고리즘이 언급됩니다. 일반적으로 주제 모델을 찾고 있습니다. 일부 인터넷 검색은 위키에있는 것보다 고급 기능을 원하는 경우 문서를 찾아야합니다.

0

Levenshtein 및 Hamming 거리는 로컬 수준의 차이와 관련이 있습니다. 문장 뒤에있는 주제를 찾으려면 문장의 모든 단어를 함께 고려하는 것이 좋습니다.

간단한 전체 문장 접근법은 tf-idf이됩니다. 각 문장을 하나의 문서로 취급 한 다음 해당 단어 (단어)가 문장에 나타나는 횟수를 세고 단어가 나타나는 문서의 수로 나누면 문장의 각 단어마다 숫자가 생깁니다. 동일한 용어에 대한 비슷한 숫자의 문장은 거의 동일한 주제입니다.

더 나은 성능이 필요한 경우 다른 방법을 사용하거나 lemmatization 또는 다른 그룹화 방법을 사용해보십시오.

각 문장과 관련된 숫자의 간단한 비교는 cosine similarity입니다.

+0

세부 정보를 보내 주셔서 감사합니다. 노드 Natural 모듈이 tf-idf를 지원합니다. 제게는 NLP에 대한 훌륭한 출발점이 될 것입니다. 나는 당신에게 +1을 주겠지 만 나는 15 : P를 칠 때까지 그럴 수 없다. – Joel