对于日期提取,我尝试使用NLTK(自然语言处理的一部分) - 正则表达式,unigram。使用这些我可以提取日期,但是当我为同一日期提取器传递不同的消息时,它无法识别日期格式。当我进一步谷歌搜索它时,我遇到了SUTime提取日期。
任何人都可以告诉我们如何安装SUTime并使用python从文本消息中提取日期吗?
或
有没有其他方法可以使用python从文本消息中提取日期?
(注意:文本消息不是机器生成的。因此日期格式在消息之间变化)
示例: 短信:“10/10/2015 4:20 CST。在Belendoor航站楼UNL从日期:2015年10月12日开始时间:美国东部时间下午1:30至07:30。” 输出:
Date1:10/10/2015 04:20:00 CST 日期2:10/12/2015 13:30 日期3:10/12/2015 19:30 EST
答案 0 :(得分:0)
SUTime在JVM上运行。所以我不确定你是否可以无缝地从Python中调用它。据我所知,Python没有SUTime端口。
答案 1 :(得分:0)
现在有一个python wrapper for SUTime。
以下内容来自README。要安装:
pip install sutime
# use package pom.xml to install all Java dependencies via Maven into ./jars
mvn dependency:copy-dependencies -DoutputDirectory=./jars
小用例:
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"
}
}
]
答案 2 :(得分:0)
现在 Python 包装器可用于 Sutime。
请参考以下链接
https://github.com/FraBle/python-sutime
请按照以下步骤操作: 1.pip安装sutime 2.mvn依赖:copy-dependencies -DoutputDirectory=./jars -f $(python3 -c 'import importlib; import pathlib; print(pathlib.Path(importlib.util.find_spec("sutime").origin).parent / "pom.xml")')
你会得到一个运行代码!!!!!!!!!