Geschätzte phonemische Ähnlichkeit zwischen zwei Wörtern

8

Ich arbeite daran, Rhymes in Python zu finden, indem ich das Aussprachewörterbuch der Carnegie Mellon University verwende, und würde gerne wissen: Wie kann ich die phonemische Ähnlichkeit zwischen zwei Wörtern schätzen? Mit anderen Worten, gibt es einen Algorithmus, der die Tatsache erkennen kann, dass "Hände" und "Pläne" dem Reimen näher sind als "Hände" und "Pommes"?

Etwas Kontext: Zuerst wollte ich sagen, dass sich zwei Wörter reimen, wenn ihre primäre betonte Silbe und alle nachfolgenden Silben identisch sind ( c06d , wenn Sie in Python replizieren wollen:

%Vor%

Wenn ich dann

ausführe %Vor%

Ich kann sehen, dass Hände und Pläne sehr ähnlich klingen. Ich könnte selbst auf eine Einschätzung dieser Ähnlichkeit hinarbeiten, aber ich dachte, ich sollte fragen: Gibt es ausgeklügelte Algorithmen, die einen mathematischen Wert mit diesem Grad an klanglicher (oder auditiver) Ähnlichkeit verbinden können? Das heißt, welche Algorithmen oder Pakete kann man verwenden, um den Grad der phonemischen Ähnlichkeit zwischen zwei Wörtern zu mathematisieren? Ich weiß, dass dies eine große Frage ist, aber ich wäre sehr dankbar für jeden Rat, den andere zu dieser Frage anbieten können.

    
duhaime 20.10.2014, 21:02
quelle

2 Antworten

3

Cheat.

%Vor%

Ausgabe:

%Vor%

Bibliothek: Ссылка

Aber im Ernst, da Sie nur Text als Eingabe und so ziemlich das textbasierte CMU-Diktat haben, sind Sie auf eine Art Manipulation der Texteingabe beschränkt; aber so wie ich es sehe, gibt es nur eine begrenzte Anzahl von Phonems, also könntest du die wichtigsten nehmen und ihnen "phonemische Gewichte" zuweisen. Es gibt nur 74 davon im CMU-Wörterbuch, auf das Sie verwiesen haben:

%Vor%

(75 minus eins für die leere Zeile)

Sie würden wahrscheinlich bessere Ergebnisse erzielen, wenn Sie in Schritt 2 etwas weiter fortgeschritten sind: Weisen Sie bestimmten Phonem-Kombinationen Gewichte zu. Dann könnten Sie einige Levenshtein-Distanzmaße modifizieren, z. in der obigen Bibliothek, um mit einigermaßen funktionierender "phonemischer Distanz" Metrik zu arbeiten, die an Texteingaben arbeitet.

Nicht viel Arbeit für Schritt 3: Profit.

    
LetMeSOThat4U 24.10.2014 10:38
quelle
0

1) Holen Sie sich alle TTS-Audio für alle Wörter über Web-API oder die lokale SAPI ,

2) Sprachfeatures extrahieren, wenn Sie können ( 1 , < a href="https://github.com/bmcfee/librosa"> 2 ), oder zumindest die Macht der Sprachdaten erhalten

3) Abhängig von der Funktion, die Sie haben, hier sind einige Ansätze.

Wenn Sie die Leistung jedes Samples (Frames) von Sprachdaten (Dim = 1) erhalten können, ist ein einfacher Weg, um die Korrelation zweier Features.

Wenn Sie andere Arten von Features haben, die höchstwahrscheinlich mehr Dimensionen haben, können Sie sie als Image behandeln und die 2d Faltung oder Dynamisches Time Warping

4) Wenn Sie keine Kenntnisse über die Sprachverarbeitung für die Aufgabe 1,2,3 haben, lesen Sie pyphonetics

%Vor%     
Steven Du 28.04.2016 05:44
quelle