
テキスト解析 Web APIとは
Yahoo!デベロッパーネットワークが提供している、テキスト解析Web APIを利用して、日本語を解析するWebサービスです。
これを使用すれば文章校正ができるWebページを簡単に作成できます。
テキスト解析 Web APIを使用するには Client ID を取得します。
LINEヤフー Tech Blogで公開されているコードを利用すれば、テキスト解析Web APIを使用した文章校正のWebページを簡単に作成できます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<style>
* { box-sizing: border-box; }
textarea { width: 100%; }
</style>
<script>
const APPID = 'あなたの Client ID(アプリケーション ID)';
async function yapifuri(query) {
const url = "https://jlp.yahooapis.jp/FuriganaService/V2/furigana?appid=" + encodeURIComponent(APPID);
const res = await fetch(url, {
method: 'POST',
mode: 'cors',
body: JSON.stringify({
"id": "A123",
"jsonrpc" : "2.0",
"method" : "jlp.furiganaservice.furigana",
"params" : { "q" : query, "grade" : 1 }
}),
});
return res.json();
}
async function kaiseki() {
const text = document.querySelector("#input-text").value;
const j = await yapifuri(text);
if (!j || !j['result']['word']) return;
document.querySelector("#output-text").value =
j['result']['word'].map(
x => x['surface'] + (x['furigana'] ? '(' + x['furigana'] + ')' : '')
).join("");
}
</script>
</head>
<body>
<button onclick="kaiseki()">解析</button>
<br>
テキスト入力エリア
<textarea id="input-text"></textarea>
テキスト出力エリア
<textarea id="output-text"></textarea>
</body>
</html>
Webページ内の入力欄に文章を入力して「校正開始」を押すと、校正が開始されて修正候補が表示されます。

校正ルールを追加する方法
前述のサンプルの例だと「重用」は正しくは「重要」で、「。。」は正しくは「。」です。
しかし、テキスト解析 Web APIのルールにはないので検出されません。
そんなときは以下のように配列オブジェクトでルールを追加すれば、APIにないルールでも検出できます。
const words = [
{ word: '重用', suggestion: '重要' },
{ word: '。。', suggestion: '。' },
];
// 中略
words.forEach(w => {
const regex = new RegExp(w.word, 'g');
let match;
while ((match = regex.exec(text)) !== null) {
obj.result.suggestions.push({
length: w.word.length,
offset: match.index,
word: w.word,
suggestion: w.suggestion,
});
}
});
obj.result.suggestions.sort((a, b) => a.offset - b.offset);
校正ルールを除外する方法
テキスト解析 Web APIでは「Web」 や「PC」が検出されてカタカナ表記を提案されますが、これらは検出してほしくない人のほうが多いでしょう。
そんなときは以下のように配列オブジェクトで除外ルールを追加すれば、APIにあるルールでも検出されなくなります。
また、テキスト解析 Web APIには「助詞不足の可能性あり」というルールがあるのですが、「今会いに行く」などの問題のない文章でも検出されることが多いので、これも除外したほうが良いです。
const removeWords = [
'Web',
'PC',
];
// 中略
obj.result.suggestions = obj.result.suggestions.filter(item => {
return !removeWords.includes(item.word) && item.rule !== '助詞不足の可能性あり';
});
テキスト解析(改良版)
この記事で説明した校正ルールの追加・除外を加えたテキスト解析(改良版)のWebページのサンプルも作成しました。
実際に使って改良前と見比べたほうが理解しやすいので、以下のリンク先で試してみて下さい。