说我有一个允许的单词/短语列表:
'Stack'
'Overflow'
'Stack Overflow'
'Stack Exchange'
'Exchange'
以及要解析的以下文本:
'Hello, and welcome to Stack Overflow.
Here are some words which should match: Stack, Exchange.'
我想获取允许列表中的单词列表:
实现结果的最佳方法是什么?
我正在使用的允许列表可能至少有一千个单词/短语。
答案 0 :(得分: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)
答案 1 :(得分:0)
让单词成为您要搜索的单词列表和段落(给出信息的段落) 你想在哪里搜索
for i in words:
if i in paragraph:
print i
这段代码对你问题中的段落和单词有好处,但是请注意,如果我们有stackoverflow而没有堆栈(单独),这段代码将打印堆栈,这既是优点也是缺点,取决于你的目的, 如果你想要单个单词使用这个
y=paragraph.split()
for i in words:
if i in y:
print i
答案 2 :(得分: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]
如果它们不在文本中,这将消除其他短语。虽然除了指定的内容之外,这也会溢出。