2

重複の可能性:
別の文字列に複数の文字列が存在するかどうかを確認します

許可されている単語/フレーズのリストがあるとします:

'Stack'
'Overflow'
'Stack Overflow'
'Stack Exchange'
'Exchange'

および解析する次のテキスト:

'Hello, and welcome to Stack Overflow. 
 Here are some words which should match: Stack, Exchange.'

許可リストにある単語のリストを取得したい:

  • 'スタックオーバーフロー'
  • 'スタック'
  • '交換'

結果を達成するための最良の方法は何ですか?

私が使用する許可リストは、少なくとも 1,000 の単語/フレーズである可能性があります。

4

3 に答える 3

2

単語をリストに入れて使用した後

def intersect(x, y):
    return list(set(x) & set(y))
word_list_text=string.split(text)
words_found={}
words_found=intersect(word_list_text, words)
于 2012-12-30T01:15:36.127 に答える
0

単語を検索したい単語のリストと、単語を検索したい段落(情報の段落)にします

for i in words:
    if i in paragraph:
        print i

このコードは質問の段落と単語に適していますが、スタックオーバーフローがあり、スタックがない場合(個別に)、このコードはスタックを出力することに注意してください。これは利点と欠点の両方であり、必要に応じて目的によって異なります個々の単語にはこれを使用します

y=paragraph.split()
for i in words:
    if i in y:
        print i
于 2012-12-30T01:16:23.083 に答える
0

次のようなフレーズがある場合:

phrases = ['Stack','Overflow','Stack Overflow','Stack Exchange','Exchange']

次に、テキストを次のようにします。

text = """Hello, and welcome to Stack Overflow. 
Here are some words which should match:Stack, Exchange."""

次に、次のことができます。

found_words = [word for word in phrases if word in text]

これにより、テキストに含まれていない他のフレーズが削除されます。これは、指定されたものに加えてオーバーフローしますが。

于 2012-12-30T05:10:52.457 に答える