自然言語で書かれた時間情報表現を抽出/規格化するルールベースの解析器
ja-timex
は、現代日本語で書かれた自然文に含まれる時間情報表現を抽出しTIMEX3
と呼ばれるアノテーション仕様に変換することで、プログラムが利用できるような形に規格化するルールベースの解析器です。
以下の機能を持っています。
- ルールベースによる日本語テキストからの日付や時刻、期間や頻度といった時間情報表現を抽出
- アラビア数字/漢数字、西暦/和暦などの多彩なフォーマットに対応
- 時間表現のdatetime/timedeltaオブジェクトへの変換サポート
from ja_timex import TimexParser
timexes = TimexParser().parse("彼は2008年4月から週に3回のジョギングを、朝8時から1時間行ってきた")
[<TIMEX3 tid="t0" type="DATE" value="2008-04-XX" text="2008年4月">,
<TIMEX3 tid="t1" type="SET" value="P1W" freq="3X" text="週に3回">,
<TIMEX3 tid="t2" type="TIME" value="T08-XX-XX" text="朝8時">,
<TIMEX3 tid="t3" type="DURATION" value="PT1H" text="1時間">]
# <TIMEX3 tid="t0" type="DATE" value="2008-04-XX" text="2008年4月">
In []: timexes[0].to_datetime()
Out[]: DateTime(2008, 4, 1, 0, 0, 0, tzinfo=Timezone('Asia/Tokyo'))
# <TIMEX3 tid="t3" type="DURATION" value="PT1H" text="1時間">
In []: timexes[3].to_duration()
Out[]: Duration(hours=1)
pip install ja-timex
本パッケージは、以下の論文で提案されている時間情報アノテーションの枠組みを元に作成しています。