我有一套要求,我正在寻找最好的基于Java的策略/ algorthm /软件。基本上,我想采用自然英语中真实人员输入的一组配方成分,并将元数据解析为结构化格式(请参阅下面的要求以了解我正在尝试做什么)。
我在这里和其他地方环顾四周,但没有发现任何可以提供关于方向的高级建议。所以,我会把它交给聪明的人:-):
解决这个问题的最佳/最简单的方法是什么?我应该使用自然语言解析器,dsl,lucene / solr或其他一些工具/技术吗? NLP似乎可能有效,但它看起来非常复杂。我宁愿不花费大量时间进行深度潜水,只是为了发现它不能做我正在寻找的东西,或者有一个更简单的解决方案。
Requirements
鉴于这些配方成分说明....
“8杯混合蔬菜(约5盎司)”
“八只去皮的鸡大腿(大约1¼磅)”
“6.5汤匙特级初榨橄榄油”
“大约6盎司。切成薄片的烟熏三文鱼,切成条状”
“2只整鸡(每只3.5磅)”
“每个冷冻切碎的菠菜20盎司,解冻”
“.5杯帕玛森芝士,磨碎”
“大约.5杯山核桃,烤好的地面”
“.5杯Dixie晚餐面包屑混合物,平原”
“8个蒜瓣,切碎(4茶匙)”
“8个葱,切成2块”
我想把它变成这个....
|-----|---------|-------------|-------------------------|--------|-----------|--------------------------------|-------------|
| | Measure | | | weight | weight | | |
| # | value | Measure | ingredient | value | measure | preparation | Brand Name |
|-----|---------|-------------|-------------------------|--------|-----------|--------------------------------|-------------|
| 1. | 8 | cups | mixed greens | 5 | ounces | - | - |
| 2. | 8 | - | skinless chicken thigh | 1.5 | pounds | - | - |
| 3. | 6.5 | tablespoons | extra-virgin olive oil | - | - | - | - |
| 4. | 6 | ounces | smoked salmon | - | - | thinly sliced, cut into strips | - |
| 5. | 2 | - | whole chicken | 3.5 | pounds | - | - |
| 6. | 20 | ounces | forzen chopped spinach | - | | thawed | - |
| 7. | .5 | cup | parmesean cheese | - | - | grated | - |
| 8. | .5 | cup | pecans | - | - | toasted, finely ground | - |
| 9. | .5 | cup | Bread Crumb Mix, plain | - | - | - | Dixie Diner |
| 10. | 8 | - | garlic clove | 4 | teaspoons | minced | - |
| 11. | 8 | - | green onions | - | - | cut into 2 pieces | - |
|-----|---------|-------------|-------------------------|--------|-----------|--------------------------------|-------------|
请注意描述的多样性。有些东西是缩写的,有些则不是。有些数字是数字,有些数字是拼写出来的。
我会喜欢能完美解析/翻译的东西。但是,我会满足于开始时做得相当好的事情。
奖金问题:在提出策略/工具之后,你会怎么做呢?
谢谢!
乔