当前位置:  开发笔记 > 编程语言 > 正文

我如何使用NLP来解析配方成分?

如何解决《我如何使用NLP来解析配方成分?》经验,为你挑选了3个好方法。

我需要将配方成分解析为适用于生产线的数量,量度,项目和描述,例如1杯面粉,2个柠檬皮和1杯红糖等.最好的方法是什么?我有兴趣在项目中使用python,所以我假设使用nltk是最好的选择,但我对其他语言开放.



1> Mike Christe..:

我实际上是为我的网站做这个,现在它是其他人使用的开源项目的一部分.

我写了一篇关于我的技术的博客文章,享受!

http://blog.kitchenpc.com/2011/07/06/chef-watson/



2> mtlynch..:

纽约时报在解析食谱档案时遇到了这个问题。他们使用了称为线性链条件随机场(CRF)的NLP技术。这篇博客文章提供了很好的概述:

“使用条件随机字段从配方中提取结构化数据”

他们开源了代码,但很快就放弃了。我维护它的最新版本,并写了一些有关如何使其现代化的文章。

如果您正在寻找现成的解决方案,则有多家公司提供成分解析服务:

热情(全部披露:我是作者)

口性的

毛豆



3> BigglesB..:

我想这已经过去了几年了,但是我当时在想做类似的事情,并且遇到了这个问题,所以我想我可能会对它有所怀疑,以防对其他人有用。

即使您说要解析免费测试,大多数食谱的食谱列表也有相当标准的格式:每种成分都在单独的一行上,准确的句子结构很少那么重要。vocab的范围也相对较小。

一种方法是检查每一行中是否有单词,这些单词可能是表示数量的名词和单词/符号。我认为WordNet可能有助于查看一个单词是否可能是名词,但是我自己之前没有使用过它。另外,您也可以将http://en.wikibooks.org/wiki/Cookbook:Ingredients用作单词列表,尽管同样,我不知道它的全面性。

另一部分是识别数量。它们以几种不同的形式出现,但是数量很少,以至于您可能无法创建关键字列表。特别是,请确保您具有良好的错误报告。如果程序无法完全解析一行,请让它向您报告该行以及它已经/尚未被识别的行,以便您可以相应地调整关键字列表。

不管怎么说,我不保证其中任何一个都可以工作(并且几乎可以肯定不是100%可靠的),但这就是我开始解决这个问题的方式

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有