我想提取与测量单位相关联的红衣主教(CD)值并将其存储在字典中。例如,如果文本包含类似" 20 kgs"的标记,它应该提取它并将其保存在字典中。
示例:
对于输入文本,“10英寸煎锅提供极好的导热性和分布”,输出字典应如下所示,{"dimension":"10-inch"}
输入文字,"这个水桶装5升水。" ,输出应该是,{"volume": "5 litres"}
line = 'This bucket holds 5 litres of water.'
tokenized = nltk.word_tokenize(line)
tagged = nltk.pos_tag(tokenized)
以上行将给出输出:
[('This', 'DT'), ('bucket', 'NN'), ('holds', 'VBZ'), ('5', 'CD'), ('litres', 'NNS'), ('of', 'IN'), ('water', 'NN'), ('.', '.')]
有没有办法从文本中提取CD和UOM值?
答案 0 :(得分:2)
不确定您需要多么灵活的流程。你可以玩nltk.RegexParser并想出一些好的模式:
import nltk
sentence = 'This bucket holds 5 litres of water.'
parser = nltk.RegexpParser(
"""
INDICATOR: {<CD><NNS>}
""")
print parser.parse(nltk.pos_tag(nltk.word_tokenize(sentence)))
输出:
(S
This/DT
bucket/NN
holds/VBZ
(INDICATOR 5/CD litres/NNS)
of/IN
water/NN
./.)
您还可以创建语料库并训练分组。
答案 1 :(得分:1)
嗯,不确定它是否有帮助 - 但我是用Javascript写的。 这里: http://github.com/redaktor/nlp_compromise
它可能有点没有文档但是这些人现在正将它移植到2.0分支。
考虑到端口到python应该很容易 What's different between Python and Javascript regular expressions?
并且:你检查过蟒蛇NLTK了吗? :http://www.nltk.org