Как я могу подсчитать, сколько раз любая из строк массива появляется в тексте с помощью Python?

#python #list

#python #Список

Вопрос:

У меня есть некоторый текст, raw_text и у меня есть массив слов:

 VERBS = ['be', 'am', 'is', 'are', 'was', 'were', 'being', 'been']
  

Я хочу подсчитать, сколько раз используется ЛЮБОЕ из этих слов raw_text . Регистр не имеет значения, но границы слов будут.

Я уверен, что это выполнимо с помощью регулярных выражений или NLTK. Есть идеи?

Комментарии:

1. Насколько велик raw_text ? Если он не такой большой, вы можете использовать Counter(raw_text.split()) его, просто посмотрите на ключи, присутствующие в VERBS

2. Однако @DeepSpace Пробелы — это не то же самое, что границы слов. Это было бы не так просто

3. Проверьте pypi.org/project/gensim или любая другая библиотека НЛП. Все они поддерживают именно этот тип операций прямо из коробки.

4. Это также может представлять интерес: analyticsvidhya.com/blog/2019/07 /…

Ответ №1:

 VERBS = ['be', 'am', 'is', 'are', 'was', 'were', 'being', 'been']
raw_text = "This IS example text which we will use to count these words: am, be, is, are"
 

raw_text2 = " "   raw_text.lower()   " "
cnt = 0   
for verb in VERBS:
    cnt  = (len(raw_text2.split(f" {verb} "))-1)
    cnt  = (len(raw_text2.split(f" {verb},"))-1)
print(cnt)