前提とやりたいこと
[前提]
・固有名詞が登録されたリストwords = [a,b,c,d...]
がある
・とある文章AA = text
が存在する
(実際には固有名詞は映画の作品名、文章はその感想とします。)
[やりたいこと]
・文章Aの中に固有名詞のいずれかが含まれる場合、該当する固有名詞にリンクタグを付与する
やっていること
python
1for word in words: 2 if word in text: 3 replace_word = '<a href="/">%s</a>' % word 4 text = text.replace(word,replace_word)
(↑後で気づいたけど、ifいらないですね)
問題となっていること
仮に、リストwords
の中に同じ文字列を含んでしまうものが存在した時、おかしくなります。
例)映画の作品には、シリーズ化されていてそのタイトルを冠するものが多い
words = ['アイアンマン','アイアンマン2']
この場合、文章を検索した時にまずアイアンマン
についてリンクを付与したなら、問題は発生しませんが、
先にアイアンマン2
にリンクが付与された場合、その中に含まれるアイアンマン
が次に付与されてしまいますよね。
これは、作品名が全く異なっても起こりうる問題であると考えています。
お願いします
この問題を回避する方法を考えています。
良いアイデアがありましたら、ご教授いただけませんでしょうかm(_ _)m
よろしくお願いします。
追記
タイトルの長い順から検索していき、当てはまったタイトルが他のタイトルを含んでいる時、他のタイトルをリストから除外して再ループというのが一番効率的でしょうか、、、
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/31 01:10
2017/03/31 07:02 編集