1
多くの行を含むテキストファイルでは、類似の単語で始まり一意ではない行をすべて抽出する必要があります。 私は、同じ内容(重複する行)またはわずかに異なる内容(最初の単語の後ろ)を持つ可能性がある、同じものから始まる行を探します。私はこの例がそれを説明することを願っています(彼らは一意であるため、この例で廃棄類似の行のテキストファイルをフィルタする
hungarian-american
hungarian-german lied ms
hungarian-german ms
hungarian-speaking areas
hungarian-speaking regions
hungary
hungary and slovakia
hungary and slovakia
が
hungarica
hungry i
hunnis, william
hunt, l.
をしている:私はこれらの行を探しています
hungarian-american
hungarian-german lied
hungarian-german
hungarian-speaking areas
hungarian-speaking regions
hungarica
hungary
hungary and slovakia
hungary and slovakia
hungry i
hunnis, william
hunt, l.
:これは、例えば、このようなファイルのうちだろう同じような言葉で始まらない)。
この問題にどのように対処できますか?私はPythonや正規表現に多少慣れていますが、おそらくもっと簡単なソルトがありますか?ご協力いただきありがとうございます!
import re
from collections import defaultdict
dic = defaultdict(list)
lines = """hungarian-american
hungarian-german lied
hungarian-german
hungarian-speaking areas
hungarian-speaking regions
hungarica
hungary
hungary and slovakia
hungary and slovakia
hungry i
hunnis, william
hunt, l.""".split('\n')
for line in lines:
# you should preferably use a word tokenizer such as the ones availables in NTLK
# but this line gives the idea
try:
first_word = re.split(',|;|-|\s', line)[0]
except IndexError:
continue
# Grouping similar lines
dic[first_word].append(line)
# Showing only similar lines which are not unique :
for word, lst in dic.items():
if len(lst) > 1:
print '\n'.join(lst)
がどのように '希望リスト – Bijoy
申し訳@Bijoyに記載されているhungary'が、私はあなたが求めているものを理解していないん – kbecker87