Способ автоматического определения контекста / значения слова в Python - PullRequest
0 голосов
/ 01 мая 2020

У меня есть Python список слов на разные темы (в частности, названия subreddit). Мне нужно отфильтровать только подпрограммы о программировании, такие как "linux", "Python", "lisp", "программирования", "ProgrammerHumor" и т. Д. c. (обратите внимание на несоответствие заглавным буквам). Есть ли какой-нибудь автоматический c способ сделать это, например, с помощью NLTK, или я должен сделать это вручную?

РЕДАКТИРОВАТЬ:
Видимо, мой первоначальный вопрос был немного неясным. Поэтому у меня есть длинный список возможных имен subreddit, и я хочу отфильтровать только те, которые имеют отношение к программированию. Я не знаю, какие из них - могут быть имена языков программирования ("lisp", "Python"), или общие вещи программирования ("программирование", "ProgrammerHumor"), или что-то еще связанные с программированием ("LearningMachineLearning," linux "). Есть ли способ автоматически извлечь их, возможно, с помощью NLP, основываясь на значении / контексте слова, или я должен сделать это вручную?

1 Ответ

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

Я не уверен, что понимаю, чего вы пытаетесь достичь. Но если вопрос заключается в том, можете ли вы сопоставить слова, содержащие заглавные буквы, вам нужно просто преобразовать все в строчные буквы, а затем выполнить сопоставление regex .

В вашем случае это может выглядеть примерно так:

Шаг 1: установить регулярное выражение:

pip install regex

Шаг 2: написать код:


import regex as re
list_of_stuff = ['Python', 'linux', 'lisp', 'programming', 'ProgrammerHumor']
thing_to_find = 'program'
mult3 = map(lambda x: x.find(thing_to_find), list(map(str.lower, list_of_stuff)))
print (list(mult3)) # [-1, -1, -1, 0, 0] -1 = no match, 0 = match

В приведенном выше выводе:

[-1, -1, -1, 0, 0] 

, в котором -1 указывает на отсутствие совпадения, а 0 указывает на совпадение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...