形態素解析
日本語の文章を単語に分けます。 語と語のあいだに区切りがないので、集計や分類の前にこの処理が要ります。分けた単語は空白でつないだ 1 つの文字列になります。
選べる辞書は日本語の辞書だけなので、英語のように空白で区切られた文章にこのノードを掛ける必要はありません。
入出力
| ポート | 内容 |
|---|---|
| 入力データ | データ |
| 出力データ | データ |
Spark エンジンでは動きません。
行の数は変わりません。 対象列 1 つにつき 1 列増えます(上書きを選んだときは増えません)。
設定項目
- 結果の挿入先を設定
- 新規列に挿入(既定)か既存列に上書き。
- 接尾辞を入力必須
- 新規列に挿入のときだけ出ます。元の列名の後ろに付ける文字。既定は
_形態素。複数列を一度に処理できるので、列名そのものではなく接尾辞を指定します。本文を処理すると本文_形態素ができます。 - 処理対象列を選択必須
- 分ける列。文字列の列だけ選べます。複数選べます。
- 処理を選択
- 単純な分かち書き(既定)/ 品詞を指定する / 詳細な品詞を指定する。
- 辞書を選択
- NEologd(既定)か IPA辞書。
- 品詞を選択必須
- 品詞を指定するか詳細な品詞を指定するのときに出ます。残す品詞を選びます。複数選べます。どちらを選んだかで選択肢が変わります。
- 表層型を抽出
- 品詞を指定するのときだけ出ます。既定は off。
「品詞を指定する」で選べる 11 種類
連体詞 / 接頭詞 / 名詞 / 動詞 / 形容詞 / 副詞 / 接続詞 / 助詞 / 助動詞 / 感動詞 / 記号
「詳細な品詞を指定する」で選べる 28 種類
連体詞 / 接頭詞 / 名詞-引用文字列 / 名詞-サ変接続 / 名詞-ナイ形容詞語幹 / 名詞-形容動詞語幹 / 名詞-動詞非自立的 / 名詞-副詞可能 / 名詞-一般 / 名詞-数 / 名詞-接続詞的 / 名詞-固有名詞 / 名詞-接尾 / 名詞-代名詞 / 名詞-非自立 / 名詞-特殊 / 動詞-自立 / 動詞-接尾 / 動詞-非自立 / 形容詞-自立 / 形容詞-接尾 / 形容詞-非自立 / 副詞 / 接続詞 / 助詞 / 助動詞 / 感動詞 / 記号
3 つの処理の違い
| 処理 | 残る単語 | 単語の形 |
|---|---|---|
| 単純な分かち書き | すべて | 書かれていたまま |
| 品詞を指定する | 選んだ品詞だけ | 既定は辞書の見出し語。表層型を抽出を on にすると書かれていたまま |
| 詳細な品詞を指定する | 選んだ品詞だけ(細かい分類) | 辞書の見出し語(表層型を抽出は出ません) |
「走った」は、単純な分かち書きなら 走っ た、品詞を指定して動詞だけ残すと 走る になります。
表層型を抽出
on にすると、辞書の見出し語ではなく文章に書かれていたままの形を取り出します。
| 設定 | 取り出すもの |
|---|---|
| off(既定) | 辞書の見出し語。走った の動詞は 走る |
| on | 文章にあったまま。走った の動詞は 走っ |
言い回しの違いまで数えたいときに on にします。同じ意味の語をまとめたいなら off のままです。
空白を含む単語
品詞を指定したときだけ、単語の中の空白がアンダースコアに置き換わります。 New York は New_York になります。空白の種類は問いません。
単純な分かち書きでは置き換わりません。
辞書の違い
どちらも日本語の辞書です。 辞書を選ぶ項目に英語などの辞書はありません。
| 辞書 | 特徴 |
|---|---|
| NEologd(既定) | 新語・固有名詞に強い。製品名や人名がまとまる |
| IPA辞書 | 標準的。細かく分かれる |
商品名や会社名を 1 単語として扱いたいなら NEologd です。
単語が 1 つも残らないとき
結果が空になった行は欠損値になります。 空の文字列ではありません。品詞を絞りすぎると、短い文章の行がごっそり欠損になります。
このまま単語頻度の集計につないでもエラーにはなりませんが、中身のない単語が 1 つ数えられます(集計側で欠損を空の文字列として扱うため)。欠損値処理で落としておくと数がきれいになります。
エラーと対処
選んだ列が見つからない
「処理対象列を選択」で指定した列が入力データにないとき、またはどの条件にも 1 列も当たらないとき。前の処理で列名が変わった場合にも出ます。
対象の列が存在しません。
直し方 — 列を選び直してください。列名が変わりうるデータでは、名前に頼らない選び方(型で選ぶ・前方一致)に変えると壊れにくくなります。
よく使う例
1. 名詞だけ取り出して集計する
問い合わせに多い言葉を知りたいとき。
入力
| 問い合わせ |
|---|
返品の手続きを教えてください |
設定
| 設定項目 | 値 |
|---|---|
| 処理対象列を選択 | 問い合わせ |
| 接尾辞を入力 | _形態素(既定) |
| 処理を選択 | 品詞を指定する |
| 品詞を選択 | 名詞 |
出力 — 問い合わせ_形態素 に 返品 手続き が入ります。助詞や動詞は落ちます。このあと単語頻度の集計につなぎます。
2. 商品名をまとめたい
商品名が細かい単語に分かれてしまうとき。
入力
| レビュー |
|---|
東京スカイツリーに行きました |
設定
| 設定項目 | 値 |
|---|---|
| 辞書を選択 | NEologd(既定) |
| 処理を選択 | 詳細な品詞を指定する |
| 品詞を選択 | 名詞-固有名詞 |
出力 — 東京スカイツリー が 1 語として残ります。IPA辞書だと 東京 スカイ ツリー のように分かれます。
3. 言い回しの違いまで数える
「よかった」「よい」を別のものとして数えたいとき。
入力
| 感想 |
|---|
とてもよかったです |
設定
| 設定項目 | 値 |
|---|---|
| 処理を選択 | 品詞を指定する |
| 品詞を選択 | 形容詞 |
| 表層型を抽出 | on |
出力 — よかっ が入ります。off だと、辞書の見出し語に直った形(活用していない形)になります。
4. 分類の特徴量にする
文章を機械学習に使いたいとき。
入力
| 本文 | ラベル |
|---|---|
返品の手続きを教えてください | 問い合わせ |
設定
| 設定項目 | 値 |
|---|---|
| 処理対象列を選択 | 本文 |
| 処理を選択 | 品詞を指定する |
| 品詞を選択 | 名詞、動詞、形容詞 |
出力 — 本文_形態素 ができます。この列をテキストから特徴量抽出に渡すと数値の列になります。
5. 元の文章を残したまま分ける
分けた結果と元の文章を見比べたいとき。
入力 — 例 1 と同じ
設定
| 設定項目 | 値 |
|---|---|
| 結果の挿入先を設定 | 新規列に挿入(既定) |
出力 — 問い合わせ はそのまま残り、問い合わせ_形態素 が増えます。既存列に上書きを選ぶと元の文章は消えます。
6. 複数の文章列をまとめて分ける
件名と本文の両方を分けたいとき。
入力
| 件名 | 本文 |
|---|---|
返品について | 手続きを教えてください |
設定
| 設定項目 | 値 |
|---|---|
| 処理対象列を選択 | 件名、本文 |
| 接尾辞を入力 | _形態素 |
出力 — 件名_形態素 と 本文_形態素 の 2 列が増えます。列名ではなく接尾辞を指定するのはこのためです。