输入的文本总是菜名列表,其中有1~3个形容词和一个名词
输入
thai iced tea
spicy fried chicken
sweet chili pork
thai chicken curry
输出:
thai tea, iced tea
spicy chicken, fried chicken
sweet pork, chili pork
thai chicken, chicken curry, thai curry
基本上,我希望解析句子树,并尝试通过将形容词与名词配对来生成bi grams。
我想用spacy或nltk来实现
使用NLTK可以通过几个步骤实现这一点:
PoS标记序列
生成所需的n-grams(在您的示例中,没有trigrams,但是跳过可以通过trigrams生成的grams,然后打孔中间的标记)
丢弃所有与模式不匹配的n-gramsJJ NN。
示例:
根据需要扩展模式
('JJ', 'NN')
和所需的n-grams。我认为不需要解析。 然而,这种方法的主要问题是,大多数PoS标记器可能不会按照您想要的方式标记所有内容。 例如,我的NLTK安装的默认PoS标记符标记“chili”为NN,而不是JJ,并且“fried”得到VBD。 不过,解析并不能帮到你!
我用Spacy2.0和英文版。要找到名词和“非名词”来解析输入,然后我将非名词和名词组合在一起以创建所需的输出。
您的意见:
Spacy解决方案:
调用函数:
结果:
像这样的:
或者使用
colibricore
https://proycon.github.io/colibri-core/doc/#installation;p相关问题 更多 >
编程相关推荐