对于数据提取,我尝试使用NLTK (自然语言处理的一部分)-正则表达式,unigram。使用这些我可以提取日期,但是当我为同一日期提取器传递不同的消息时,它无法识别日期格式。当我进一步搜索它时,我偶然发现了SUTime来提取日期。
有人能告诉我们如何安装SUTime并使用python从文本消息中提取数据吗?
或
还有其他方法可以使用python从文本消息中提取日期吗?
(注意:文本消息不是机器生成的。因此日期格式从一条消息更改到另一条消息)
例如:短信:“2015年10月10日4:20科技委。在贝尔多尔终点站,UNL自2015年10月12日起不可用,时间:下午1:30至东部时间晚上07:30。”产出:
Date1 : 10/10/2015 04:20:00 CST Date2 : 10/12/2015 13:30 Date3 : 10/12/2015 19:30
发布于 2017-08-14 21:06:12
现在有一个用于SUTime的python包装器。
以下是来自自述的。安装:
pip install setuptools_scm jpype1 # install pre-reqs
pip install sutime
# use package pom.xml to install all Java dependencies via Maven into ./jars
mvn dependency:copy-dependencies -DoutputDirectory=./jars注意:在运行mvn依赖项:复制依赖项命令之前,请确保将pom.xml文件从上面的repo链接复制到执行命令的目录(这个目录必须在下面的_file_路径中指定)。
小用例:
import os
import json
from sutime import SUTime
if __name__ == '__main__':
test_case = u'I need a desk for tomorrow from 2pm to 3pm'
jar_files = os.path.join(os.path.dirname(__file__), 'jars')
sutime = SUTime(jars=jar_files, mark_time_ranges=True)
print(json.dumps(sutime.parse(test_case), sort_keys=True, indent=4))输出:
[
{
"end": 26,
"start": 18,
"text": "tomorrow",
"type": "DATE",
"value": "2016-10-14"
},
{
"end": 42,
"start": 27,
"text": "from 2pm to 3pm",
"type": "DURATION",
"value": {
"begin": "T14:00",
"end": "T15:00"
}
}
]发布于 2016-04-14 02:47:04
SUTime在JVM上运行。因此,不确定是否可以从Python中无缝地调用它。据我所知,Python没有SUTime端口。
发布于 2021-05-04 19:00:40
现在python包装器可以用于Sutime了。
请参阅下面的链接
https://github.com/FraBle/python-sutime
请遵循以下步骤:1. the安装sutime 2.mvn依赖项:复制依赖项-DoutputDirectory=./jars -f $(python3 -c 'import the;import路径库;python3/“pom.xml”)
你将得到一个运行代码!
https://stackoverflow.com/questions/33329238
复制相似问题