2016-09-26 1 views
1

Ich brauche einen Text und entfernen Sie die \ n Zeichen, die ich glaube ich getan habe. Die nächste Aufgabe besteht darin, den Bindestrich von Wörtern zu entfernen, wo er nicht erscheinen sollte, aber den Bindestrich in zusammengesetzten Wörtern zu belassen, wo er erscheinen sollte. Zum Beispiel "Enzyklopädie" zu "Enzyklopädie" und "Langzeit" zu "Langzeit". Der Vorschlag ist, es mit einem Originaltext zu vergleichen.Python - "Rückgängig" Text-Wrap

Ich habe eine allgemeine Idee, was zu tun ist, aber NLP ist ziemlich neu für mich.

Antwort

1

Ein erster Durchlauf würde sein, einen Satz gültiger Wörter herumzuhalten und zu entsilben, wenn sich Ihr entschnittenes Wort in der Menge gültiger Wörter befindet. Ubuntu hat eine Liste gültiger Wörter unter/usr/share/dict/american-english. Eine zu einfachen Version könnte wie folgt aussehen:

valid_words = set(line.strip() for line in open(valid_words_file)) 

output = [] 
for word in open(new_file).read().replace('-\n', '').replace('\n', ' ').split(): 
    if '-' in word and word.replace('-', '') in valid_words: 
     output.append(word.replace('-', '')) 
    else: 
     output.append(word) 

Sie würden mit Zeichensetzung beschäftigen müssen, Kapitalisierung, etc., aber das ist die Idee.

+0

Vielen Dank. Ich dachte darüber nach, wie ich mich trennen sollte. Konzeptionell habe ich dies notiert: #Ist du zwei Listen oder Dateien, #Für ein Element in der ersten Liste mit einem Bindestrich, # #check für das gleiche Element in der zweiten Liste mit oder ohne Bindestrich. # Wenn das Element in der zweiten Liste keinen Bindestrich enthält, löschen Sie den Bindestrich aus der ersten Liste. –

+0

Könnte es eine gute Referenz geben. Wenn ich nach Bindestrichen suche, finde ich die einfache Methode, aber nicht, wie Bindestriche basierend auf einer Referenzliste entfernt werden. Es fühlt sich an, als wäre es eine Art umgekehrter Text-Wrapper-Prozess. –

+0

import re mit offenen ('C: \ Benutzer \ Paul \ BROWN_A1.txt', 'rU') als truefile: true_corpus = truefile.read() true_tokens = true_corpus.split (‘‚) mit open ('C: \ Benutzer \ Paul \ Desktop \ Comp_Ling_Research_1 \ BROWN_A1_hy penated.txt', 'rU') als myfile: my_corpus = myfile.read() my_tokens = my_corpus.split (‘‚) –

-1
import re 


with open('C:\Users\Paul\BROWN_A1.txt', 'rU') as truefile: 
    true_corpus = truefile.read() 

true_tokens = true_corpus.split(' ') 

with open('C:\Users\Paul\Desktop\Comp_Ling_Research_1\BROWN_A1_hypenated.txt', 'rU') as myfile: 

my_corpus = myfile.read() 

my_tokens = my_corpus.split(' ') 
+0

Wie funktioniert das, um Ihr Problem zu lösen? – alexis