Я хочу использовать StanfordNER
в python для обнаружения именованных объектов. Как мне очистить предложения?Как убрать предложения для StanfordNER
для примера рассмотрим
qry="In the UK, the class is relatively crowded with Zacc competing with Abc's Popol (market leader) and Xyz's Abcvd."
если я сделать
st = StanfordNERTagger('english.all.3class.distsim.crf.ser.gz')
print st.tag(qry.split())
я получить
[
(u'In', u'O'), (u'the', u'O'), (u'UK,', u'O'), (u'the', u'O'),
(u'class', u'O'), (u'is', u'O'), (u'relatively', u'O'), (u'crowded', u'O'),
(u'with', u'O'), (u'Zacc', u'PERSON'), (u'competing', u'O'), (u'with', u'O'),
(u"Abc's", u'O'), (u'Popol', u'O'), (u'(market', u'O'), (u'leader)', u'O'),
(u'and', u'O'), (u"Xyz's", u'O'), (u'Abcvd.', u'O')
]
`
так только один по имени оздействию было обнаружено. Однако, если я сделать некоторые очистки путем замены всех специальных символов с пробелами
qry="In the UK the class is relatively crowded with Zacc competing with Abc s Popol market leader and Xyz s Abcvd"
я получить
[
(u'In', u'O'), (u'the', u'O'), (u'UK', u'LOCATION'), (u'the', u'O'),
(u'class', u'O'), (u'is', u'O'), (u'relatively', u'O'), (u'crowded', u'O'),
(u'with', u'O'), (u'Zacc', u'PERSON'), (u'competing', u'O'), (u'with', u'O'),
(u'Abc', u'ORGANIZATION'), (u's', u'O'), (u'Popol', u'PERSON'), (u'market', u'O'),
(u'leader', u'O'), (u'and', u'O'), (u'Xyz', u'ORGANIZATION'), (u's', u'O'), (u'Abcvd', u'PERSON')]
`
так ясно, что это более уместно. Существуют ли общие правила о том, как очищать предложения для StanfordNER
? Первоначально я думал, что никакой очистки не требуется вообще!