我有一组要求,我正在寻找要使用的最佳基于Java的策略/算法/软件。基本上,我想用真实的人用自然英语输入的一组食谱成分,然后将元数据解析为结构化格式(请参阅下面的要求以查看我要执行的操作)。
我在这里和其他地方四处张望,但没有发现任何有关下一步发展方向的高级建议。因此,我将其交给聪明的人:-):
解决此问题的最佳/最简单方法是什么?我应该使用自然语言解析器,dsl,lucene/solr或其他工具/技术吗? NLP似乎可以工作,但是看起来确实很复杂。我宁愿不花大量时间进行深入研究,只是发现它无法满足我的需求或找到更简单的解决方案。
要求
给定这些配方成分说明...。

  • “8杯混合蔬菜(约5盎司)”
  • “八个去皮的鸡大腿(约1¼磅)”
  • “6.5汤匙特级初榨橄榄油”
  • “大约6盎司烟熏三文鱼切成薄片,切成条”
  • “2只整只鸡(每只3.5磅)”
  • “解冻的每块冷冻菠菜20盎司,解冻后的”
  • “.5杯帕玛森芝士,磨碎”
  • “约0.5杯山核桃,烤制并磨碎”
  • “.5杯Dixie Diner面包粉混合,普通”
  • “8瓣大蒜,切碎(4茶匙)”
  • “8个大葱,切成2块”

  • 我想把它变成这个。
    | ----- | --------- | ------------- | ------------------- ------ | -------- | ----------- || ---------------------------------- ---------- | ------------- |
    | |测量| |重量重量| |
    | #|值|测量成分|值|测量准备|品牌名称
    | ----- | --------- | ------------- | ------------------- ------ | -------- | ----------- || ---------------------------------- ---------- | ------------- |
    | 1. | 8 |杯子|混合蔬菜| 5 |盎司| -| -|
    | 2. | 8 | -|去皮鸡大腿| 1.5 |磅| -| -|
    | 3. | 6.5 |大汤匙|特级初榨橄榄油| -| -| -| -|
    | 4. | 6 |盎司|烟熏三文鱼| -| -|切成薄片,切成条| -|
    | 5. | 2 | -|整只鸡| 3.5 |磅| -| -|
    | 6. | 20 |盎司|切碎的菠菜| -| |解冻-|
    | 7. | .5 |杯子|帕玛森芝士| -| -|磨碎| -|
    | 8. | .5 |杯子|山核桃| -| -|烤,磨碎| -|
    | 9. | .5 |杯子|普通面包屑混合物| -| -| -| Dixie Diner |
    | 10. | 8 | -|大蒜丁香| 4 |茶匙|切碎-|
    | 11. | 8 | -|葱| -| -|切成两块| -|
    | ----- | --------- | ------------- | ------------------- ------ | -------- | ----------- || ---------------------------------- ---------- | ------------- |

    注意描述的多样性。有些东西是缩写,有些不是。有些数字是数字,有些是拼写的。
    我希望可以进行完美的解析/翻译。但是,会满足于一些相当不错的开始。
    额外的问题:在提出策略/工具后,您将如何做?
    谢谢!

    最佳答案

    简短的答案。使用 GATE

    长答案。您需要一些工具来识别文本中的模式。可以捕获诸如以下内容的模式:

    {Number}{Space}{Ingredient}
    {Number}{Space}{Measure}{Space}{"of"}{Space}{Ingredient}
    {Number}{Space}{Measure}{Space}{"of"}{Space}{Ingredient}{"("}{Value}{")"}
    ...
    

    {Number}是数字的情况下,{Ingredient}是从成分词典中提取的,{Measure}是从字典量度中提取的,依此类推。

    我描述的模式与GATE的 JAPE规则非常相似。使用它们,您可以捕获与模式匹配的文本,并为模式的每个部分(编号,成分,小节等)分配一些标签。然后,您提取带标签的文本并将其放入单个表中。

    我提到的字典可以用GATE中的地名词典表示。

    因此,GATE可以满足您的所有需求。这不是最简单的开始,因为您至少必须学习GATE的基础知识,JAPE规则和宪报,但是通过这种方法,您将能够获得非常好的结果。

    10-08 18:46