NLP Hacks Vol.3で「時間情報表現抽出とルールベース解析器のこれから」という題で登壇しました
2022/04/08に開催されたNLP Hacks vol.3にて、「時間情報表現抽出とルールベース解析器のこれから」という題でLTをさせていただきました。主催のELYZA様および参加くださった皆様、ありがとうございました。
この記事ではLTで触れることのできなかったja-timex公開後からいままでの経緯や、今後のja-timexの方向性について、少し補足を兼ねてお話できればと思います。
ja-timex公開後の変化
ja-timexの開発開始は2021/7/18、初めてのリリースが2021/08/01、Zennでの紹介記事の公開が2021/08/03でした。その後地道に機能改善やバグ修正を含め開発を続けてきましたが、公開後に変わったことが幾つかあります。
normalizeNumexpのPython実装の出現
登壇資料でも触れましたが、元々は東北大乾研による数値表現や時間表現の解析器であるnormalizeNumexpが手元で動かないというところが、独自実装をスタートさせるきっかけでした。normalizeNumexpの再実装も検討したものの、C++がわからない&数値表現までサポートする必要がないという理由で諦めたのですが、その後PythonでnormalizeNumexpを再実装された方がいらっしゃいます。pynormalizenumexp
という名前でPyPIにも公開されており、ja-timexと同じくPythonから容易に利用できます。もしこちらのパッケージが先に出ていれば、私はja-timexを実装していなかっただろうなと思います。
こちらのパッケージの出現により、TIMEX3のアノテーションを主軸とする時間情報表現の解析器が複数存在し、精度を相対的に比較することができるようになりました。現在は評価データが無いため不可能ではありますが、これまで重い腰が上がらなかった評価データを作るというモチベーションが生まれました。
ja-timexの活用例の出現
ja-timex実装は自分がシェアードタスクで利用できたらいいなという程度で作り始めたものでしたが、パッケージとして公開することでポツポツと使ったよという反響が出てきました。
まずはpo3rinさんにより、検索クエリの解析にja-timexを利用した検索クエリの解析とQuery Relaxationを試される事例が公開されました。同じ医療ドメインを対象としているだけあって、同じ課題感を共有できたようでとても刺激されました。
Handling Temporal Query for Health Search with ja-timex - Speaker Deck
また、内輪の取り組みではありますが、実際に弊社(Ubie株式会社)の内部システムでの利用事例を作ることができました。ほぼ自己満足な取り組みではあったので、自分の会社の役に立つツールとなって嬉しいです。
もし他にも、こんなプロジェクトで使っているよ!こんな使い方しているよ!という人がいらっしゃいましたら、ぜひ私にご連絡いただければと思います。今後の開発の励みになります。
ja-timexの今後
最後に、ja-timexを今後どうしていくのかを書いていきたいと思います。今回の発表資料でおおむねお伝えできたと思いますが、改めて具体的なプランを書き出してみます。
Weak Supervisionを用いたTransformerベースの固有表現抽出の作成
まずは、ルールベースから大規模言語モデルを用いた固有表現抽出への移行です。英語での既存研究でもある通り、ルールベースの結果を機械学習の学習データに用いるというWeak Supervisionの採用によって、より文脈を考慮したTransformerベースの時間情報表現抽出が現実的なものになっています。ルールベース実装のja-timexではカバー範囲の拡充が既に頭打ちとなっており、ルールの追加等のコストに対するリターンが少なくなってきている現状で、ここからより高精度なモデルを作る流れを確立していきたいところです。ルールベースのアプローチが機械学習モデルへの足がかりになることを示すという意味でも、BERT/RoBERTa等の日本語学習済み大規模言語モデルと組み合わせる形で、学習済みモデルファイルをHugging Face Hubで公開して気軽に利用できるところまでやり切れるといいなとは思っています。
評価コーパスの作成
高精度なものを作るという以上、比較のために定量的に評価する方法を確立しなければなりません。現状は無料で利用できる時間情報解析のコーパスが存在しないため、これを作るところから始める必要があります。その際には、
- アノテーションガイドラインの作成
- ja-timex自体が既存研究から一部解釈を変更している点もあるので、そこを改めて明文化し客観的な基準を作成
- 文書の再配布や同梱が権利的に問題ないような、時間情報解析が含まれた文書の収集
- livedoor ニュースコーパス、Wikipedia、WikiNews、裁判の判例、政府公開のオープンデータ等を検討
- 文書のバリエーションを担保したい(ニュース/小説/口語など)
- livedoor ニュースコーパス、Wikipedia、WikiNews、裁判の判例、政府公開のオープンデータ等を検討
- 実際に人間がアノテーションを付与し評価データとする
- ja-timexで粗くアノテーションした後に人間が修正を行う方法を検討
- ある程度のデータ量を担保しつつ、アノテーターも2名以上確保したい
あたりを順にクリアしていく必要があります。かなり大変な作業になることは明らかですが、順を追ってやっていきたいなと思います。
まとめ
この記事では、ja-timexの実装と時間情報表現のこれからについて登壇した内容を元に、その補足および今後の動向についてご紹介しました。こうして登壇することで、改めてこれまでの取り組みを振り返る良い機会になるとともに、次にやることが鮮明になってモチベーションも生まれますね。発表フィードバックとしてなにか執念を感じるという言葉を頂きましたが、まさに作っている最中はひたすら正規表現とテストを実装しながら、とりあえず作り切ることを目標にがむしゃらに頑張った感があります。その頃を思い出しつつ、地味なタスクながらも次のステップに向けて今後も取り組んでいきたいと思います。
Discussion