【发布时间】:2019-10-18 21:30:23
【问题描述】:
我正在使用 NLTK POS-Tagging 从文本中提取信息,在此示例中,我正在寻找 IBAN。对于某些文本,代码返回不止一个块,但我不介意,稍后我将使用 RegEx 对正确的一个进行排序。 现在这是我的问题:有没有更漂亮的方法来获取块的字符串,以便我可以使用它们或保存它们?
当然您可以采用人工方式(即遍历 ibanChunk 中的所有行,然后遍历 ibanChunk.replace(..) 等),但必须有更好的方法,至少这是我所希望的。
tagged_sents = list(corp.tagged_sents())
tagger = ClassifierBasedGermanTagger(train=tagged_sents)
tagged_sents = tagger.tag(filtered_sentence)
ibanChunkGram = r"""Chunk: {(<VMPP><CARD>*)|(<FM><CARD>+)}"""
chunkParser = nltk.RegexpParser(ibanChunkGram)
ibanChunk = chunkParser.parse(tagged_sents)
print(ibanChunkGram)
现在该行的输出如下所示:
(Chunk DE01/FM 2345/CARD 6789/CARD 0000/CARD 0000/CARD 00/CARD)
而我想要的是:
DE01 2345 6789 0000 0000 00
编辑:这是一个最小示例:
This is a minimal example of POS-tagging. I want to extract an IBAN (DE01 2345 6789 0000 0000 00) and I hope The Machine 01 can find it quick.
这是我的代码的输出:
(S
This/NE
is/FM
a/FM
minimal/FM
example/FM
of/FM
POS-tagging/FM
./$.
I/FM
want/FM
to/FM
extract/FM
IBAN/FM
(/$(
(Chunk DE01/FM 2345/CARD 6789/CARD 0000/CARD 0000/CARD 00/CARD)
)/$(
and/NE
I/NE
hope/VAFIN
The/NE
Machine/NE
01/CARD
can/XY
find/XY
it/XY
quick/XY
./$.)
【问题讨论】:
标签: python nltk chunking part-of-speech