Apitore blog

Apitoreを運営していた元起業家のブログ

【API】文章を単文に分割するAPI

はじめに

長い文章を単文に分割するAPIを公開しました。例えば、文書要約では要約文を生成するアプローチと、要約文を抽出するアプローチとありますが、本APIは後者をするときに役立ちます。簡単なヒューリスティックスを使っているので、あまり精度はよくありません。暫定的な処置としてお使い下さい。 amarec (20161225-071002)

API

サンプルコード

使ってみる

以下の記号を文区切りとしています。とても単純なヒューリスティックスです。

!?。「」『』!?

試しに文章を入力してみます。

"text": "シベリアからカナダ北極圏にかけてのツンドラ地帯を原産地とする、社会性に富んだ性格の大型犬種。進化系統上の祖先はスピッツのそれと同系とされている。 極東北極圏を中心にトナカイ遊牧や狩猟を行う「チュクチ族」(「チェコート族」ともいう・俗に「エスキモー」と総称される中の1民族)に、古くから犬ぞりなどの牽引による人荷の運搬・狩猟補助などを行う用務犬として重用されてきた。",
"sentences": [
  "シベリアからカナダ北極圏にかけてのツンドラ地帯を原産地とする、社会性に富んだ性格の大型犬種。",
  "進化系統上の祖先はスピッツのそれと同系とされている。",
  " 極東北極圏を中心にトナカイ遊牧や狩猟を行う",
  "「チュクチ族」",
  "(",
  "「チェコート族」",
  "ともいう・俗に",
  "「エスキモー」",
  "と総称される中の1民族)に、古くから犬ぞりなどの牽引による人荷の運搬・狩猟補助などを行う用務犬として重用されてきた。"
]

おわりに

括弧の扱いが難しいですね。今回の入力では括弧で文区切りはしないほうが望ましい印象です。ただ、セリフとかだと間に句点(。)が入るので、それはちゃんと区切りたいですね。文区切りはちゃんとアノテーションしたデータを作って、NeubigさんのKyTeaのアプローチ、正確に言うとPointwiseアプローチで機械学習するとかなり精度が良いことが経験的にわかっています。現状は優先度が低いですが、そのうち必要になりそうなので少しずつ作っていこうと思います。