2016-09-26 4 views
1
私は私がやったと信じて\ n文字を、テキストを取り、削除する必要があり

。次の作業は、表示されるべきではない単語からハイフンを削除することですが、表示されるはずの複合語でハイフンを残すことです。たとえば、「encyclo- \ npediaに 『『長期的 『から』百科事典』と』長期\ nterm。提案は元のテキストと比較することです。パイソン - 「元に戻す」テキストラップ

私は何をすべきかという一般的な考え方を持っていますが、NLPは私には全く新しいものです。

答えて

1

最初のパスは、あなたのデハイフネーションされた単語が有効な単語の集合である場合の周りの有効な単語の集合とデハイフネーションを維持するだろう。 Ubuntuには/ usr/share/dict/american-englishに有効な単語のリストがあります。

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) 

あなたがなど句読点、大文字、対処しなければならないが、それはアイデアです:過度の単純なバージョンは、次のようになります。

+0

ありがとうございました。私は脱hyphenateする方法を考えていた。概念的には、私がこれを書いた:あなたは二つのリストまたはファイルを持っているの#if、 1 #For項目ハイフンと最初のリストには、ハイフンの有無にかかわらず第二のリスト内の同じ項目の #checkを。第二のリスト内の項目#If文 は、最初のリストからハイフンを削除ハイフンを持っていません。 –

+0

良いリファレンスがあるかもしれません。ハイフンを削除する場合は、単純な方法がありますが、参照リストに基づいてハイフンを削除する方法はありません。逆のテキストラッパープロセスのような感じです。オープンと 再 –

+0

インポート( 'C:\ Users \ユーザーポール\ BROWN_A1.txt'、 'のrU')truefileとして: true_corpus = truefile.read() true_tokens = true_corpus.split(」「) 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

これはあなたの問題を解決するためにどのように機能しますか? – alexis