如何以其他信息为条件提取数字信息?

数据挖掘 Python nlp 斯派西
2022-03-09 04:37:19

给定文本数据,我想根据其他信息的存在来提取数字信息。

例如,“现在健身房有 119 人。举重室有 100 人,跑步机上有 19 人”。如果我对“健身房”感兴趣,那么我会提取“100”,或者如果我对“跑步机”感兴趣,那么我会提取“19”。

我可以使用 Python 的 spaCy 包创建依赖关系树。有没有办法提取这些依赖项?

1个回答

如果您的数据总是像这样干净,您也许可以使用简单的正则表达式来解决问题。您可以简单地查找出现在感兴趣字符串之前的第一个数字。

至于使用spacy进行依赖解析,这是您的句子将得到的输出

There expl are VERB [] are ROOT are VERB [There, people, now, .] 119 nummod people NOUN [] people attr are VERB [119, in] in prep people NOUN [gym] the det gym NOUN [] gym pobj in ADP [the] right advmod now ADV [] now advmod are VERB [right] . punct are VERB [] 100 nummod people NOUN [] people ROOT people NOUN [100, in, ,, 19] in prep people NOUN [room] the det room NOUN [] weight compound room NOUN [] room pobj in ADP [the, weight] , punct people NOUN [] 19 appos people NOUN [on] on prep 19 NUM [treadmills] treadmills pobj on ADP []

这意味着您需要先定位体重室,然后回溯到 100,在这种情况下,这可能比使用正则表达式更复杂。