2017-05-15 4 views
0

Ich habe einen Text in Englisch, den ich verarbeiten möchte, um bestimmte Einträge zu finden, die ich in einem anderen Wörterbuch in Python habe (Beispieleintrag: Massenspektroskopie). Diese Einträge sind sehr wichtig, da sie für spätere Annotationen angepasst werden müssen. Um das zu tun, muss ich entweder viele Formen von jedem Eintrag hinzufügen (wie Plural, Akronyme usw.) oder einen Weg finden, die intelligente Verarbeitung durchzuführen. Der brutale Ansatz benötigt nicht nur viel mehr Zeit (für mich), aber ich kann möglicherweise nicht alle Situationen lösen (ich möchte Massenspektroskopie, möglicherweise Spektroskopie, aber nicht Masse). Ich suche keine Lösungen, ich brauche nur Richtlinien, wie man das Problem angeht und welches Toolkit zu verwenden ist. Das Wörterbuch wächst und ein intelligenter Ansatz wird bevorzugt.Textverarbeitung und Erkennung aus einem bestimmten Wörterbuch in Python

Ich habe NLTK in Python gefunden, aber ich bin mir nicht sicher, wie ich mein dict zusätzlich oder anstelle der eingebauten Korpora verwenden kann.

Beispiel - Ich habe einen Satz: [u'Liquid ', u'biopsies', 'based', 'on', 'circulating','cell-free ', u'DNA', Sie (cfDNA) ',' Analyse ',' '' ',' '' ',' '' '' '' '' '' '' '' '' 'Sie' '' '' '' '' '' '' '' '' 'Analyse . '] Ich habe ein Diktat mit {' Liquid Biopsy ': [' Blut zur Analyse '],' cfDNA ': [' Blut zur Analyse ']}. Die Arrays werden absichtlich verwendet, so dass sie beide dasselbe Objekt sind und versuchen, Aliase in einem Diktat zu erzeugen.

Wie passe ich meine Einträge dem Text an?

Vielen Dank im Voraus!

+0

Es wäre hilfreicher, wenn Sie uns das Code-Beispiel für Ihren vorgestellten Workflow zeigen würden. –

+0

Willkommen bei StackOverflow. Bitte lesen und befolgen Sie die Buchungsrichtlinien in der Hilfe. [zum Thema] (http://stackoverflow.com/help/on-topic) und [how to ask] (http://stackoverflow.com/help/how-to-ask) gilt hier. StackOverflow ist kein Design-, Codierungs-, Recherche- oder Tutorial-Service. Es konzentriert sich auf spezifische Programmierprobleme. – Prune

+0

Entschuldigung, ich habe ein sehr konkretes Beispiel aus meinem Anwendungsfall hinzugefügt. Sowohl Text als auch Wörterbuch sind viel größer. –

Antwort

1

Wenn ich Sie nicht falsch verstanden habe, möchten Sie die Wörterbuchelemente mit den Listenelementen überprüfen. Drucken Sie die Ergebnisse anschließend auf der Konsole aus.

dict_1={"Liquid Biopsy":"Blood for analysis","cfDNA":"Blood for analysis","Liquid Biopsies":"Blood for analysis"} 
list_1=[u'Liquid', u'biopsies', u'based', u'on', u'circulating', u'cell-free', u'DNA', u'(cfDNA)', u'analysis', u'are', u'described', u'as', u'surrogate', u'samples', u'for', u'molecular', u'analysis.'] 
string_1=" ".join(list_1).lower() 
for i in dict_1: 
    if i.lower() in string_1: 
     print("Key: {}\nValue: {}\n".format(i,dict_1[i])) 

Ich benutzte die obigen Codes und die Konsole druckte die folgenden Ergebnisse.

Key: Liquid Biopsies 
Value: Blood for analysis 

Key: cfDNA 
Value: Blood for analysis 


Process finished with exit code 0 
Verwandte Themen