NLTK – Громкая грамматика не читает запятые

from nltk.chunk.util import tagstr2tree from nltk import word_tokenize, pos_tag text = "John Rose Center is very beautiful place and i want to go there with Barbara Palvin. Also there are stores like Adidas ,Nike ,Reebok Center." tagged_text = pos_tag(text.split()) grammar = "NP:{<NNP>+}" cp = nltk.RegexpParser(grammar) result = cp.parse(tagged_text) print(result) 

Вывод:

 (S (NP John/NNP Rose/NNP Center/NNP) is/VBZ very/RB beautiful/JJ place/NN and/CC i/NN want/VBP to/TO go/VB there/RB with/IN (NP Barbara/NNP Palvin./NNP) Also/RB there/EX are/VBP stores/NNS like/IN (NP Adidas/NNP ,Nike/NNP ,Reebok/NNP Center./NNP)) 

Грамматика, которую я использую для chunking, работает только с тегами nnp, но если слова последовательны с запятыми, они все равно будут на одной строке. Мне нужен мой кусок:

 (S (NP John/NNP Rose/NNP Center/NNP) is/VBZ very/RB beautiful/JJ place/NN and/CC i/NN want/VBP to/TO go/VB there/RB with/IN (NP Barbara/NNP Palvin./NNP) Also/RB there/EX are/VBP stores/NNS like/IN (NP Adidas,/NNP) (NP Nike,/NNP) (NP Reebok/NNP Center./NNP)) 

Что я должен писать в «grammar =» или я могу отредактировать вывод, как я написал выше? Как вы можете видеть, я разбираю только собственные имена для моего имени. Проект PLS помогает мне.

One Solution collect form web for “NLTK – Громкая грамматика не читает запятые”

Используйте word_tokenize(string) вместо string.split() :

 >>> import nltk >>> from nltk.chunk.util import tagstr2tree >>> from nltk import word_tokenize, pos_tag >>> text = "John Rose Center is very beautiful place and i want to go there with Barbara Palvin. Also there are stores like Adidas ,Nike ,Reebok Center." >>> tagged_text = pos_tag(word_tokenize(text)) >>> >>> grammar = "NP:{<NNP>+}" >>> >>> cp = nltk.RegexpParser(grammar) >>> result = cp.parse(tagged_text) >>> >>> print(result) (S (NP John/NNP Rose/NNP Center/NNP) is/VBZ very/RB beautiful/JJ place/NN and/CC i/NN want/VBP to/TO go/VB there/RB with/IN (NP Barbara/NNP Palvin/NNP) ./. Also/RB there/EX are/VBP stores/NNS like/IN (NP Adidas/NNP) ,/, (NP Nike/NNP) ,/, (NP Reebok/NNP Center/NNP) ./.) 
  • Разбор нескольких предложений с помощью MaltParser с использованием NLTK
  • Обнаруживать тайны английского глагола, используя NLTK
  • Как использовать шаблон регулярного выражения nltk для извлечения определенного фрагмента фразы?
  • Что такое число ngram и как реализовать с помощью nltk?
  • Разрешение Coreference в python nltk с использованием Stanford coreNLP
  • Неправильная маркировка глагола в NLTK
  • nltk языковая модель (ngram) вычисляет проблему слова из контекста
  • Упрощение французского набора тегов POS с NLTK
  • nltk: Как предотвратить возникновение собственных существительных
  • Именованное распознавание объектов для NLTK в Python. Идентификация NE
  • Смешивание слов и тегов PoS в грамматиках парсера NLTK
  • Python - лучший язык программирования в мире.