在Python中创建已找到单词的数组

时间:2014-04-03 22:31:41

标签: python search text data-analysis

我有一条文字和条款清单。我想创建一个数组,显示在消息中找到哪些术语。例如:

message = "the quick brown fox jumps over the lazy dog"
terms = ["quick", "fox", "horse", "Lorem", "Ipsum", "the"]

result = idealMethod(message, terms)
=>   [1,1,0,0,0,1] 

因为“quick”是术语列表中的第一项,并且也在消息中,1位于结果的第一个位置。这是另一个例子:

message2 = "Every Lorem has a fox"
result2 = idealMethod(message2, terms)
=> [0,1,0,1,0,0]

更新 这些条款必须完全匹配。例如,如果我的搜索字词包含 sam ,我不希望匹配相同的

2 个答案:

答案 0 :(得分:4)

我想你想要:

words = set(message.split(" "))
result = [int(word in words) for word in terms]

请注意,默认情况下split()会在空格上拆分,因此您可以省略" "

答案 1 :(得分:4)

您可以使用列表理解并利用事实,True在数值上下文中被评估为1

words = set(message.split())
result = [int(term in words) for term in terms]
Out[24]: [1, 1, 0, 0, 0]
在澄清之后,

EDIT 更改为仅查找整个单词匹配。