python - 如何根据python中句子的上下文提取数字?
问题描述
我尝试使用正则表达式,但它不使用任何上下文
示例::“出售 250 公斤橙子”“我想以每公斤 100 元的价格出售 100 公斤洋葱”
解决方案
你可以做这样的事情。首先,您将文本拆分为单词,然后尝试将每个单词转换为数字。如果单词可以转换为数字,它就是一个数字,如果你确定一个数量后面总是跟着单词“kg”,一旦你找到这个数字,你就可以测试下一个单词是否是“kg”。然后,根据结果,将值添加到相应的数组中。在这种特殊情况下,您必须确保单独写入数字(例如“100 kg”而不是“100kg”),否则不会转换。
string = "250 kg Oranges for Sale. I want to sell 100 kg of Onions at 100 per kg."
# Split the text
words_list = string.split(" ")
print(words_list)
# Find which words are numbers
quantity_array = []
price_array = []
for i in range(len(words_list)):
try:
number = int(words_list[i])
# Is it a price or a quantity?
if words_list[i + 1] == 'kg':
quantity_array.append(number)
else:
price_array.append(number)
except ValueError:
print("\'%s\' is not a number" % words_list[i])
# Get the results
print(quantity_array)
print(price_array)
推荐阅读
- wordpress - 在没有插件 WordPress 的情况下创建面包屑
- android - 如何处理活动中的recyclerview的项目视图?
- reactjs - 如何以正确的状态更新减速器?
- javascript - ESLint - 未定义“进程”
- php - Laravel 多对多插入每一侧
- bootstrap-4 - Bootstrap 4 日期时间选择器日期格式更改
- javascript - Javascript 适用于除 Firefox 之外的所有浏览器
- mongodb - 用于可扩展架构的 Elasticsearch mongodb Cassandra
- java - Android - 扩展泛型类
- python - 限定字母串