我有一个数据帧,其中有一列"标记",其中包含由多个文本提取的单个单词,例如:
text = "hello it's me"
df['token']
0 hello
1 it
2 '
3 s
4 me
数据帧很长,因为我有 1000 个句子,并且所有句子都像我上面写的那样被拆分和分割。 现在我有一个三元组列表,比如['no way out', 'my life is', 'hello my name']
我想检查这些句子是否以列表中的三元组之一开头,我该怎么做?
在我看来,代币更好的数据结构是一个set
。通过定义df.token
的集合,您可以将查找复杂度降低到O(1)
,并且由于您只需要迭代句子列表,这给我们留下了一个O(len(l))
的方法:
tokens = set(df.token.values.tolist())
l = ['no way out', 'my life is', 'hello my name']
[i.split(maxsplit=1)[0] in tokens for i in l]
# [False, False, True]