Я новичок, изучаю python в течение нескольких месяцев как мой самый первый язык программирования. Я ищу, чтобы найти шаблон из текстового файла. Моя первая попытка была с помощью регулярных выражений, который делает работу, но имеет ограничение:Найти шаблон в текстовом файле из нескольких элементов в нескольких списках?
import re
noun_list = ['bacon', 'cheese', 'eggs', 'milk', 'list', 'dog']
CC_list = ['and', 'or']
noun_list_pattern1 = r'\b\w+\b,\s\b\w+\b,\sand\s\b\w+\b|\b\w+\b,\s\b\w+\b,\sor\s\b\w+\b|\b\w+\b,\s\b\w+\b\sand\s\b\w+\b|\b\w+\b,\s\b\w+\b,\saor\s\b\w+\b'
with open('test_sentence.txt', 'r') as input_f:
read_input = input_f.read()
word = re.findall(noun_list_pattern1, read_input)
for w in word:
print w
else:
pass
Так что на данный момент вы можете спросить почему списки в этом коде, так как они не используются. Ну, я выхожу из своих мозгов, пытаясь разобраться в циклах, и если инструкции в функциях пытаются найти причину для репликации шаблона регулярного выражения, но с использованием списков.
Ограничение с помощью регулярного выражения состоит в том, что код \b\w+\w\
, который содержится несколько раз в `noun_list_pattern ', фактически находит слова - любые слова - но не конкретные существительные. Это может вызвать ложные срабатывания. Я хочу еще больше сузить вещи, используя элементы в списке выше, а не в регулярном выражении.
Так как у меня на самом деле есть 4 разных регулярных выражения в шаблоне регулярных выражений (он содержит 4 |
), я просто отправлюсь с 1 из них здесь. Таким образом, я должен был бы найти модель, такие как:
'noun in noun_list' + ', ' + 'noun in noun_list' + ', ' + 'C in CC_list' + ' ' + 'noun in noun_list
Очевидно, что приведенный выше код цитировал строки не реальный код питона, но это experession моих мыслей о матче необходимо. Где я говорю noun in noun_list
Я имею в виду итерацию через noun_list; C in CC_list
- итерация через CC_list; ,
- это буквальное совпадение строк для запятой и пробелов.
Надеюсь, я убедился!
Вот содержимое файла test_sentence.txt
, что я использую:
I need to buy are bacon, cheese and eggs.
I also need to buy milk, cheese, and bacon.
What's your favorite: milk, cheese or eggs.
What's my favorite: milk, bacon, or eggs.
Не могли бы вы разместить пример данных, которые вы хотите найти, пожалуйста? – jrd1
упс! да будет, забыл об этом. –
Вы пытаетесь проанализировать структуру каждого предложения и сгруппировать аналоги? Если да, вы можете попробовать библиотеку nltk: http://nltk.org/ У них также есть хорошо написанный бесплатный документ (поставляется в виде книги) в качестве руководства для начинающих. – Mai