java 数字识别_java-识别数字数据的自然语言处理

我的要求是响应查询,从自然语言句子(仅英语)中识别并提取数字数据.平台是Java.例如,如果用户查询为“珠穆朗玛峰的高度是多少”,则我们的段落为:

In 1856, the Great Trigonometric Survey of British India established the first published height of Everest, then known as Peak XV, at 29,002 ft (8,840 m). In 1865, Everest was given its official English name by the Royal Geographical Society upon recommendation of Andrew Waugh, the British Surveyor General of India at the time, who named it after his predecessor in the post, and former chief, Sir George Everest.[4] Chomolungma had been in common use by Tibetans for centuries, but Waugh was unable to propose an established local name because Nepal and Tibet were closed to foreigners. (Pasted from wikipedia)

对于用户从该段落中查询“珠穆朗玛峰的高度”的问题,我需要获得29002 ft或8840 m作为答案.任何人都可以提出使用Java的任何可行方法吗?是否有相同的开源库?

解决方法:

显然,做到这一点非常困难.如果这是一项任务,那么我猜期望值会更低.以下是一些想法,希望可以帮助您入门:

我将问题分为两部分;解析问题块,然后传递答案块.从问题块中,您需要了解2条信息,所搜索内容的名词以及答案的类型.在这种情况下,名词是Everest,类型是height.您可以快速建立字典的“类型”数据来搜索输入字符串(例如“身高”,“体重”,“距离”,“年龄”).名词比较难,所以我想假设问题中的每个非类型都是潜在名词,也许删除已知非名词的字典(例如“ at”,“ the”,“ of”等等.).

在从问题中识别出名词和类型后,就可以开始扫描答案栏了.我首先将其分解为句子.然后扫描每个句子中的每个名词.如果在该句子中找到一个,则需要再次扫描该句子中的数字(考虑到可能的空格或逗号分隔).最后,您需要在“周围”寻找针对测量类型的任何数字.因此,在这种情况下,我们从问题中解析的“类型”是“高度”.您将需要创建类型到度量的映射,因此“高度”将映射“ km,ft,in,cm,m”等.如果数字周围有这些类型之一,则将数字和度量类型返回为答案.

希望能帮助您入门.如上所述,这并非旨在成为可靠的商业解决方案.这是家庭作业级别的.

标签:tokenize,nlp,java,parsing

来源: https://codeday.me/bug/20191208/2093138.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值