Так что я пытаюсь извлечь некоторую информацию из текста, и я использую Chunking NLTK.NLTK Chunk Parser: Как избежать специальных символов
Вот мой вход
The stocks show 67% rise, last year it was 12% fall
я хочу, чтобы захватить
67% rise
и 12% fall
POS размечают выше предложение показывает
('The', 'DT'), ('stocks', 'NNS'), ('show', 'VBP'), ('67', 'CD'), ('%', 'NN'), ('rise', 'NN'), (',', ','), ('last', 'JJ'), ('year', 'NN'), ('it', 'PRP'), ('was', 'VBD'), ('12', 'CD'), ('%', 'NN'), ('fall', 'NN')
Теперь я придумал с простое правило
Stat: {<CD><NN>(<NN>+|<VBN>|JJ)?}
, который хорошо работает и захватывает
('67', 'CD'), ('%', 'NN'), ('rise', 'NN')
('12', 'CD'), ('%', 'NN'), ('fall', 'NN')
но в моем наборе данных, у меня есть такие вещи, как
5 million dollars
которая
('5', 'CD'), ('man', 'NN'), ('stock', 'NN')
и также неправильно зафиксирован. Так я думал о включении %
знака в моем правиле
Stat: {<CD><%>(<NN>+|<VBN>|JJ)?}
, но это правило ничего не соответствует в настоящее время. Как мне избежать/включить %
в моем правиле chunk?
Update
Итак, что я не понимаю, что я могу соответствовать другим специальным символам. Например, если у меня есть правило как
XYZ:{<:>}
это соответствует всем :
сек на входе. Так что все, что я пытаюсь сделать, это
XYZ:{<%>}
и это не работает. Я пытался избежать %
по
XYZ:{<\%>}
, но это не работает. Я пробовал \\
, но безрезультатно. Я действительно не хочу изменять входную строку, как только я совпадал, я хочу узнать индексы совпадающих строк. Так что, если я изменю входную строку, которая сбросит мои индексы, если я не сделаю обратное преобразование первым
Я думаю, что вы не можете соответствовать тексту (''%), только свои метки (как ни странно, 'NN'). Если вы получаете еще один тег POS, который дает вам отличный тег для '%', тогда вы можете улучшить chunker. – lenz
я смогу использовать chunker nltk с другими тегерами POS? Есть ли в nltk другие пометки? или я должен пойти на что-то вроде stanford pos taggers? – AbtPst
@ lenz Есть ли способ указать правило, такое как 'NN, которое соответствует строке%'? – AbtPst