проверьте, находится ли токен (в столбце pandas) во внешнем списке триграмм - PullRequest
0 голосов
/ 26 мая 2020

У меня есть фрейм данных со столбцом «токен», в котором есть одно слово, извлеченное несколькими текстами, например:

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']. Я хочу проверить, начинаются ли эти предложения с одной из триграмм в списке, как я могу это сделать?

1 Ответ

0 голосов
/ 26 мая 2020

Мне кажется, что гораздо лучшая структура данных для токенов - это 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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...