2016-10-29 14 views
0

私はPythonを使ってテキストファイルに挿入される新しい単語を探したい。たとえば:テキストファイルに新しい挿入単語を見つける

Old: He is a new employee here. 
New: He was a new, employee there. 

私は、出力などの単語のリストをしたい:['was', ',' ,'there']

は私がdifflibを使用しますが、それは私に'+', '-' and '?'を使用して、悪いフォーマットされた方法で差分を与えます。私は新しい単語を見つけるために出力を解析する必要があります。これをPythonで簡単に行う方法はありますか?

答えて

0

reモジュールでこれを達成できます。

import re 

# create a regular expression object 
regex = re.compile(r'(?:\b\w{1,}\b)|,') 

# the inputs 
old = "He is a new employee here." 
new = "He was a new, employee there." 

# creating lists of the words (or commas) in each sentence 
old_words = re.findall(regex, old) 
new_words = re.findall(regex, new) 

# generate a list of words from new_words if it isn't in the old words 
# also checking for words that previously existed but are then added 
word_differences = [] 
for word in new_words: 
    if word in old_words: 
     old_words.remove(word) 
    else: 
     word_differences.append(word) 

# print it out to verify 
print word_differences 

あなたは、このような強打やセミコロンなど他の句読点を追加したい場合は、あなたが正規表現の定義に追加しなければならないことに注意してください。今は、単語やカンマのみをチェックします。

+1

しかし、古いテキストに「there」という単語が他の場所に含まれていた場合は、この単語を返しますか? – Hellboy

+0

ああ、あなたは正しい。考え方は変わりませんが、その退行的な症例については簡単な修正があります。私は適応するように編集します。 –

0

Google Diff-Patch-Matchを使用しました。それはうまく動作します。

関連する問題