Sto lavorando per rilevare le rime in Python usando il dizionario di pronuncia Carnegie Mellon University e vorrei sapere: Come posso stimare la somiglianza fonemica tra due parole? In altre parole, esiste un algoritmo in grado di identificare il fatto che "mani" e "piani" sono più vicini alla rima di "mani" e "patatine fritte"?Stima della somiglianza fonemica tra due parole
Alcuni contesto: In un primo momento, ero disposto a dire che due parole in rima se il loro primario ha sottolineato sillaba e tutte le sillabe successive sono identici (c06d se si desidera replicare in Python):
def create_cmu_sound_dict():
final_sound_dict = {}
with open('resources/c06d/c06d') as cmu_dict:
cmu_dict = cmu_dict.read().split("\n")
for i in cmu_dict:
i_s = i.split()
if len(i_s) > 1:
word = i_s[0]
syllables = i_s[1:]
final_sound = ""
final_sound_switch = 0
for j in syllables:
if "1" in j:
final_sound_switch = 1
final_sound += j
elif final_sound_switch == 1:
final_sound += j
final_sound_dict[word.lower()] = final_sound
return final_sound_dict
Se io quindi eseguire
print cmu_final_sound_dict["hands"]
print cmu_final_sound_dict["plans"]
posso vedere che le mani ei piani suono molto simile. Potrei lavorare per una stima di questa somiglianza da solo, ma ho pensato che dovrei chiedere: ci sono algoritmi sofisticati in grado di legare un valore matematico a questo grado di somiglianza sonora (o uditiva)? Cioè, quali algoritmi o pacchetti si possono usare per matematizzare il grado di somiglianza fonemica tra due parole? Mi rendo conto che questa è una grande domanda, ma sarei molto grato per qualsiasi consiglio che altri possano offrire su questa domanda.
Perché down-vote e spostare per chiudere? Cosa posso fare per migliorare la domanda? – duhaime
Stai cercando qualcosa come l'algoritmo Soundex (http://en.wikipedia.org/wiki/Soundex)? – acfrancis
Non posso parlare per il downvoter, ma la ragione per il voto ravvicinato è che la tua domanda sembra che stia [chiedendo dei consigli] (http://meta.stackoverflow.com/questions/254393/what-exactly-is -a-raccomandazione-domanda). Puoi riformulare la frase per chiedere più chiaramente "* Come posso fare X? *" Piuttosto che "* Quale strumento dovrei usare per fare X? *" –