programing

Google 검색 "이것을 의미 했습니까"알고리즘에 대한 자세한 내용은 어디에서 확인할 수 있습니까?

nasanasas 2020. 11. 3. 08:06
반응형

Google 검색 "이것을 의미 했습니까"알고리즘에 대한 자세한 내용은 어디에서 확인할 수 있습니까?


중복 가능성 :
"이것을 의미 했습니까"를 어떻게 구현합니까?

Google의 "이것을 의미합니까?"와 유사한 기능이 필요한 애플리케이션을 작성하고 있습니다. 검색 엔진에서 사용하는 기능 :

대체 텍스트

그런 일에 사용할 수있는 소스 코드가 있습니까? 아니면 제 자신을 만드는 데 도움이되는 기사를 어디서 찾을 수 있습니까?


몇 줄의 파이썬에서 맞춤법 검사기를 구현하는 방법에 대한 Peter Norvigs 기사를 확인해야 합니다. 맞춤법 교정기를 작성하는 방법 다른 언어 (예 : C #)로 구현할 수있는 링크도 있습니다.


1 년 반 전에 Google 엔지니어의 세미나에 참석하여 이에 대한 접근 방식에 대해 이야기했습니다. 발표자는 그들의 알고리즘 (적어도 일부)이 지능이 거의 없다고 말했습니다. 오히려 그들이 접근 할 수있는 엄청난 양의 데이터를 활용합니다. 그들은 누군가 "Brittany Speares"를 검색하고 아무 것도 클릭하지 않은 다음 "Britney Spears"를 다시 검색하고 무언가를 클릭하면 그들이 무엇을 검색하고 있는지에 대해 공정하게 추측 할 수 있으며 미래.

면책 조항 : 이것은 알고리즘의 일부일 수 있습니다.


파이썬에는 difflib. 라는 기능을 제공합니다 get_close_matches. Python 문서에서 :

get_close_matches(word, possibilities[, n][, cutoff])

최상의 "충분히 좋은"일치 항목 목록을 반환합니다. word 는 근접 일치가 필요한 시퀀스 (일반적으로 문자열)이고 가능성단어 와 일치 할 시퀀스 목록 (일반적으로 문자열 목록)입니다.

선택적 인수 n (기본값 3)은 반환 할 근접 일치의 최대 수입니다. n 은보다 커야 0합니다.

선택적 인수 cutoff (기본값 0.6)는 [0, 1] 범위의 부동 소수점입니다. 최소한 단어 와 비슷한 점수를 얻지 못한 가능성 은 무시됩니다.

(이하 최고는 N ) 가능성이 목록에 반환되는 가운데, 유사성 점수, 가장 유사한 처음으로 분류 일치합니다.

  >>> get_close_matches('appel', ['ape', 'apple', 'peach', 'puppy'])
  ['apple', 'ape']
  >>> import keyword
  >>> get_close_matches('wheel', keyword.kwlist)
  ['while']
  >>> get_close_matches('apple', keyword.kwlist)
  []
  >>> get_close_matches('accept', keyword.kwlist)
  ['except']

이 도서관이 당신을 도울 수 있습니까?


유사한 기능을 제공하는 http://developer.yahoo.com/search/web/V1/spellingSuggestion.html사용할 수 있습니다 .


다른 많은 검색 라이브러리와 마찬가지로이 기능을 제공하는 Xapian의 소스 코드를 확인할 수 있습니다. http://xapian.org/


그것이 귀하의 목적에 부합하는지 확실하지 않지만 사전이있는 문자열 편집 거리 알고리즘은 작은 응용 프로그램에 충분할 수 있습니다.


나는 구글 폭격 에 대한이 기사를 볼 것이다 . 이전에 입력 한 결과를 기반으로 답변을 제안하는 것만 보여줍니다.


AFAIK "말 했나요?" 기능은 맞춤법을 검사하지 않습니다. Google에서 파싱 한 콘텐츠를 기반으로 한 또 다른 쿼리 만 제공합니다.


이 주제에 대한 훌륭한 장은 공개적으로 사용 가능한 정보 검색 소개 에서 찾을 수 있습니다 .


U는 비교를 위해 ngram을 사용할 수 있습니다 : http://en.wikipedia.org/wiki/N-gram

파이썬 ngram 모듈 사용 : http://packages.python.org/ngram/index.html

import ngram

G2 = ngram.NGram([  "iis7 configure ftp 7.5",
                    "ubunto configre 8.5",
                    "mac configure ftp"])

print "String", "\t", "Similarity"
for i in G2.search("iis7 configurftp 7.5", threshold=0.1):
    print i[0], "\t", i[1]

U 얻을 :

>>> 
String  Similarity
"iis7 configure ftp 7.5"    0.76
"mac configure ftp  0.24"
"ubunto configre 8.5"   0.19

Levenshtein-Automata 살펴보기

참고 URL : https://stackoverflow.com/questions/3763640/where-can-i-learn-more-about-the-google-search-did-you-mean-algorithm

반응형