転送:https://flystarhe.github.io/docs-2014/algorithm/similarity-more/readme/
DEF Ngram_distance(STR1、STR2、N- = 2 ): TMP = ' ' *(N - 1 ) STR1 = + 0009 + TMP TMP #示し始めイニシャル及びチャーの端 STR2 = TMP + STR2 + TMPの SETL = SET( [0009 [I:Iは、N-] + ための I にレンジ(LEN(STR1) - (N - 1 ))]) SET2 = SET([STR2 [I:Iは、N-] + ための I にレンジ(LEN(STR2) - (N - 1 ))]) SETX = SETL&SET2 LEN1 = LEN(SETL) LEN2 = LEN(SET2) lenX =LEN(SETX) num_dist = LEN1 + LEN2 - 2 * lenx num_sim = 1 - num_dist /(LEN1 + LEN2) 戻り SET1、SET2、{ ' DIST ':num_dist、' SIM ' :num_sim} プリント(Ngram_distance(' 女の子'、' ガールフレンド'))
出力:
({ ' Giの'、' O '、' RL '、' L '、' G ' }、
{ ' GI '、' EN '、' P '、' O '、' IH '、' つまり'、' RL ' ' FR ' 'RI ' 'G ' ' ND ' }、{ ' DIST ':8、' SIM 」:0.5})