忍者ブログ
統計、機械学習、AIを学んでいきたいと思います。 お役に立てば幸いです。

【自然言語処理】テキストの前処理における「正規化(Normalization)」の基本と手法

自然言語処理(NLP)において、機械がテキストデータを正確に理解・学習するためには、入力される文章の表記ゆれを綺麗に整える「正規化(Normalization)」という前処理が極めて重要です。今回は、正規化の基本となる代表的な処理と、その他の重要な前処理の全体像を整理します。

1. 【 概要 】

正規化とは、人間にとっては同じ意味であっても表記が異なるテキスト(例:「Apple」「apple」「Apple」など)を、統一された一定のルールに従って綺麗に整えるプロセスです。

この前処理を徹底することで、不要な語彙の重複を防ぎ、機械学習モデルが単語のパターンを効率よく学習できるようになります。


2. 【 基本手順(代表的な5つの正規化処理) 】

(1) 大文字・小文字の統一:すべてのテキストを小文字(または大文字)に変換する。
(2) 全角・半角の統一:全角の英数字やカタカナを半角(またはその逆)に統一する。
(3) 句読点・特殊文字の削除:分析のノイズになる「、」「。」「!」「?」などを取り除く。
(4) 数字の削除(または置換):価格や個数などの数字を取り除く、または特定のプレースホルダーに置き換える。
(5) 固有表現の正規化・抽出:電話番号や郵便番号、日付などを特定のカテゴリー(タグ)に割り振る。

3. 整理:各正規化処理の具体的な役割

正規化における5つの基本処理が、なぜ必要なのかを詳しく見ていきましょう。

【 各プロセスの具体的な仕組み 】

・処理(1):大文字・小文字の統一
「Python」と「python」は人間には同じ意味ですが、コンピュータは別々の単語として認識してしまいます。すべて小文字に統一することで語彙の爆発を防ぎます。

・処理(2):全角・半角の統一
日本語のテキストでは、全角の「A」や「1」と、半角の「A」や「1」が混在しがちです。Unicode正規化(NFKCなど)を用いて一括で統一します。

・処理(3):句読点・特殊文字の削除
「、」や「。」などの句読点や記号は、文書の意味理解においてノイズになることが多いため、正規表現などを用いてあらかじめ取り除きます。

・処理(4):数字の処理
具体的な数字(「100円」「200人」など)が多すぎるとモデルが過学習を起こしやすくなります。数字を一律で「0」や特定の記号に置換することがよく行われます。

・処理(5):固有表現の正規化(マスキング)
「090-XXXX-YYYY」のような電話番号や、「〒100-0001」のような郵便番号をそのまま残すと情報が分散します。「[PHONE]」「[ZIPCODE]」のような特殊なカテゴリーに置き換えて抽象化します。

4. 関連して押さえたい「その他の重要なテキスト前処理」

正規化の前後で行われる、自然言語処理に不可欠なその他の代表的な前処理の流れを確認しておきましょう。

・トークン化(Tokenization)
文章を意味のある最小単位(単語や形態素)に分割する処理です。日本語の場合はMeCabなどの形態素解析器を使って単語に切り分けます。

・ストップワード(Stop words)の除去
「は」「の」「に」「the」「is」など、文章の構造には不可欠ですが意味を持たない高頻度語を取り除きます。

・ステミング(Stemming)と表題化(Lemmatization)
「running」「runs」「ran」のような変化形を、原形である「run」に変換して単語のバリエーションをまとめます。


5. 補足:Pythonでの実装コード例

# 1. 簡易的な大文字変換と全角半角の正規化(unicodedataを使用)
import unicodedata
import re

def normalize_text(text):
# NFKC正規化で全角半角を統一
text = unicodedata.normalize('NFKC', text)
# 小文字に変換
text = text.lower()
# 句読点の削除
text = re.sub(r'[、。!?「」]', '', text)
# 数字を「0」に置換
text = re.sub(r'\d+', '0', text)
return text

sample_text = "Appleの価格は1000円です!"
print(normalize_text(sample_text))
# 出力イメージ: appleの価格は0円です

6. まとめ

自然言語処理における正規化は、「大文字小文字の統一」「全角半角の整理」「不要な記号・数字の削除」「固有表現の抽象化」など、テキストのノイズを取り除くための必須のステップです。
これらの前処理を丁寧に設計・実行することで、機械学習モデルの精度と安定性を劇的に高めることができます!


PR

【DS検定対策】言葉の意味をどう理解させるか?「シンボル接地問題(記号着地問題)」の仕組み

人工知能(AI)や認知科学の歴史において、コンピュータが人間のように言葉や概念を本当の意味で「理解」できているのかという本質的な限界を突いた有名な問いが、「シンボル接地問題(Symbol Grounding Problem / 記号着地問題)」です!

1. 【 問題 】

AIやコンピュータが内部で処理する抽象的な「記号(シンボル)」と、現実世界における具体的な「実体や感覚(実物のモノや手触りなど)」が結びついていないため、コンピュータは単なる記号の操作をしているだけで、本当の意味で知能や意味を理解しているとは言えないという問題を何と呼ぶでしょうか?

① シンボル接地問題(記号着地問題)
② フレーム問題(Frame Problem)
③ アソシエーション分析(Association Analysis)
④ 順序統計量(Order Statistics)


2. 【 解答 】

正解: ① シンボル接地問題(記号着地問題)

3. 整理:シンボル接地問題の本質と具体例

この問題が何を意味しているのか、具体例を交えて整理しましょう。

概念・特徴内容
中国語の部屋(思考実験)
(★今回のポイント)
中国語を全く知らない人が部屋にこもり、マニュアル(規則書)通りに記号を並べ替えて外に返しているとする。部屋の中の人にとっては「ただの記号のパズル」だが、部屋の外の人からは「完璧に中国語を理解している」ように見える。AIの内部処理もこれと同じではないかという批判。
「接地(Grounding)」の意味 人間は言葉(記号)を覚えるとき、実際のモノを見たり触ったりする「感覚(五感)」と結びつけることで意味を理解している。しかし、文字データだけを学習した初期のAIにはその「現実世界との接地(グラウンディング)」がない。

4. フレーム問題との違い

・フレーム問題:
「膨大な知識の中から、目の前の課題に関係ある部分をどう選び出すか(計算上の処理の限界)」という問題。

・シンボル接地問題:
「記号(言葉)が、現実世界のモノや感覚とどう結びついているか(意味の理解の限界)」という問題。

5. DS検定形式:実戦4択クイズ

問:人工知能(AI)の哲学や認知科学における「シンボル接地問題(記号着地問題)」に関する記述として、最も適切なものはどれか。

① 記号と現実世界の実体が結びついていないため、コンピュータは単に記号を操作しているだけであり、本当の意味で知能を持っているとは言えないという問題である。
② 膨大な知識や状況の中から、今目の前の課題に関係のある部分だけを効率よく特定することが計算上非常に難しいという問題である。
③ 同一のサンプルに対して、複数の時点にわたって複数の項目を継続して記録・収集したデータに関する問題である。
④ 名義尺度データに対する散らばり度合いや、その値が0から1の範囲に収まる性質に関する数学的な問題である。

【 正解: ① 】

解説: シンボル接地問題の定義を正確に理解しているかを問う重要問題です。
①が正解です。記号と実体が結びついていないという本質的な問いを指します。
②は「フレーム問題」、③は「パネルデータ」、④は「質的変動指標(IQV)」の説明です。


6. まとめ

DS検定や資格試験、AIの基礎論で「記号と実体が結びついていない」「知能を持っているとは言えない」といったキーワードが出たら、正解は「シンボル接地問題(記号着地問題)」です! フレーム問題とあわせて、AIの限界を論じる重要な概念としてしっかり押さえておきましょう!

【DS検定対策】3つの視点で顧客を格付けする!「RFM分析」の仕組み

マーケティングや顧客分析(CRM)の基礎において、顧客の購買履歴から「3つの重要な軸」を用いて顧客をグループ分けし、優良顧客の特定やアプローチ施策に活用する手法が「RFM分析(RFM Analysis)」です!

1. 【 問題 】

顧客の購買履歴データをもとに、Recency(直近の購買日)、Frequency(購買頻度)、Monetary(購買金額)の3つの指標に基づいて顧客を評価・分析する手法を何と呼ぶでしょうか?

① RFM分析(RFM Analysis)
② デシル分析(Decile Analysis)
③ アソシエーション分析(Association Analysis)
④ クラスター分析(Cluster Analysis)


2. 【 解答 】

正解: ① RFM分析(RFM Analysis)

3. 整理:RFM分析を構成する3つの指標

RFM分析の頭文字となっている3つの重要な軸を整理しましょう。

指標・頭文字内容・意味
1. Recency(R)
(直近性)
(★今回のポイント)
「最終購買日(最後に買ってからどれくらい日が経っているか)」。最近買った顧客ほど、今後も買ってくれる可能性が高い。
2. Frequency(F)
(頻度)
「購買頻度(一定期間内に何回買ってくれたか)」。回数が多いほど、ロイヤルティ(愛顧度)が高い顧客であると判断できる。
3. Monetary(M)
(金額)
「購買金額(合計でどれくらいお金を使ってくれたか)」。デシル分析でも使われる、売上に対する貢献度の指標。

4. なぜRFM分析が優れているのか?

・デシル分析の弱点を克服:
デシル分析は「金額(M)」だけで見るため、例えば「1年前に1回だけ高額な商品を買った人」と「最近毎月のように買ってくれている優良顧客」が同じ評価になってしまうという課題がありました。RFM分析では「直近性(R)」や「頻度(F)」も加味するため、現在進行形の優良顧客や、最近離れかけている顧客(離反予備軍)を正確に見つけ出すことができます。

5. DS検定形式:実戦4択クイズ

問:データサイエンスやマーケティングにおける「RFM分析」に関する記述として、最も適切なものはどれか。

① Recency(直近性)、Frequency(頻度)、Monetary(金額)の3つの指標に基づいて顧客を評価・分類する分析手法である。
② 購買履歴をもとに顧客を購買金額の順に並べて10等分し、上位の顧客層が全体の売上にどれだけ貢献しているかを分析する手法である。
③ 異常値判断などで異常なデータが少ない場合に利用され、正常データからなる基準からの距離を測ることで異常を検知する手法である。
④ 同一のサンプルに対して、複数の時点にわたって複数の項目を継続して記録・収集したデータの統計解析手法である。

【 正解: ① 】

解説: RFM分析の3つの構成要素と目的を正確に理解しているかを問う重要問題です。
①が正解です。R・F・Mの3軸で顧客を分析します。
②は「デシル分析」、③は「MT法」、④は「パネルデータ」の説明です。


6. まとめ

DS検定や資格試験で「Recency」「Frequency」「Monetary」「に基づいて顧客を分析」といったキーワードが出たら、正解は「RFM分析(RFM Analysis)」です! デシル分析との違いもあわせてしっかり押さえておきましょう!

【DS検定対策】顧客の貢献度を10段階で可視化する!「デシル分析(Decile Analysis)」の仕組み

マーケティングや顧客分析(CRM)の基礎において、顧客の購買履歴をもとに全体を10等分してランク分けし、どの層が売上に大きく貢献しているかを把握するための手法が「デシル分析(Decile Analysis)」です!

1. 【 問題 】

顧客の購買履歴をもとに、購買金額の多い順にすべての顧客を上位から10等分(10階層)にランク分けし、それぞれのグループが全体の売上に対してどれだけ貢献しているかを分析する手法を何と呼ぶでしょうか?

① デシル分析(Decile Analysis)
② RFM分析(RFM Analysis)
③ アソシエーション分析(Association Analysis)
④ クラスター分析(Cluster Analysis)


2. 【 解答 】

正解: ① デシル分析(Decile Analysis)

3. 整理:デシル分析の仕組みと手順

デシル分析がどのように行われ、何を読み解くのかを整理しましょう。

ステップ・特徴内容
1. 10等分へのランク分け
(★今回のポイント)
保有するすべての顧客を購買金額の多い順に並べ、上から順に10等分(デシル1〜デシル10)のグループに分割する。
2. 売上貢献度の算出 それぞれのグループが、全体の売上に対してどれくらいの割合(%)を占めているかを計算し、上位層への依存度や優良顧客の割合を把握する。

4. デシル分析から分かること

・パレートの法則(80:20の法則)の確認:
多くの場合、「上位20%の顧客(デシル1〜2)で、全体の売上の大部分(例:60〜80%)を占めている」といった偏りが見えてきます。これにより、どの顧客層を最優先で優遇・アプローチすべきかの判断材料になります。

・限界点:
購買金額の高さだけでランキングするため、「最近いつ買ったか(Recency)」や「何回買ったか(Frequency)」の視点が抜けている点に注意が必要です。それを補うのが「RFM分析」です。

5. DS検定形式:実戦4択クイズ

問:データサイエンスやマーケティングにおける「デシル分析」に関する記述として、最も適切なものはどれか。

① 購買履歴をもとに顧客を購買金額の順に並べて10等分し、上位の顧客層が全体の売上にどれだけ貢献しているかを分析する手法である。
② 異常値判断などで異常なデータが少ない場合に利用され、正常データからなる基準からの距離を測ることで異常を検知する手法である。
③ 非復元抽出を用いて各サブセット内で重複のない形でランダムにデータをサンプリングし、複数のモデルを並列に学習させる手法である。
④ 同一のサンプルに対して、複数の時点にわたって複数の項目を継続して記録・収集したデータの統計解析手法である。

【 正解: ① 】

解説: デシル分析の定義と目的を正確に理解しているかを問う重要問題です。
①が正解です。購買金額で10等分して売上貢献度を分析します。
②は「MT法」、③は「ペーティング」、④は「パネルデータ」の説明です。


6. まとめ

DS検定や資格試験で「購買履歴を元に」「購買金額の上位が全体の売り上げにどれだけ貢献しているか」「10等分」といったキーワードが出たら、正解は「デシル分析(Decile Analysis)」です! マーケティングの基礎手法としてしっかり押さえておきましょう!


【R言語】正規分布に従わないデータに!マン・ホットニーのU検定(WMW検定)の基本手順とサンプルコード

WMW検定(マン・ホッケーのU検定 / ウィルコクソンの順位和検定)は、データが正規分布に従わない場合や、アンケートの満足度のような「順序尺度」のデータを比較したいときに使われるノンパラメトリック検定です。

0. WMW検定の特徴と向いているデータ

t検定とは異なり、データの「実際の数値の大きさ」ではなく「データの順位(大小関係)」をもとに2つのグループに差があるかを検証します。

【 向いているデータの例 】

  • アンケートの満足度(1〜5点など): 正規分布に従いにくい順序データ。
  • 購入金額や滞在時間: 一部の極端な数値(外れ値)によって分布が大きく歪んでいるデータ。

1. サンプルデータの作成(満足度スコアの例)

【 手順 】 今回は、店舗Aと店舗Bにおける顧客の満足度(1〜5点)のダミーデータを作成して検定を行います。

【 サンプルコード 】

# 1. 再現性のための乱数シードの設定
set.seed(456)

# 2. 店舗Aと店舗Bの満足度スコア(1〜5点)のダミーデータを生成
shop_a <- sample(1:5, size = 40, replace = TRUE, prob = c(0.05, 0.1, 0.2, 0.4, 0.25))
shop_b <- sample(1:5, size = 40, replace = TRUE, prob = c(0.2, 0.3, 0.3, 0.15, 0.05))

# 3. データフレームへの統合
df_shop <- data.frame(
  store = factor(rep(c("Store_A", "Store_B"), each = 40)),
  score = c(shop_a, shop_b)
)

# データの先頭6行を確認
head(df_shop)

【 実行結果 】

   store score
1 Store_A     4
2 Store_A     4
3 Store_A     3
4 Store_A     2
5 Store_A     3
6 Store_A     4

2. WMW検定の実行手順

【 手順 】 RでWMW検定を行うには、t検定とほぼ同じ要領で wilcox.test() 関数を使用します。

【 サンプルコード 】

# Step 1: グループごとの要約(中央値の算出)
aggregate(score ~ store, data = df_shop, FUN = median)

# Step 2: マン・ホッケーのU検定(WMW検定)の実行
res_mw <- wilcox.test(score ~ store, data = df_shop)

# 検定結果のコンソール出力
print(res_mw)

【 実行結果 】

# Step 1 の結果(中央値)
   store score
1 Store_A   3.5
2 Store_B   3.0

# Step 2 の結果(print(res_mw))
        Wilcoxon rank sum test with continuity correction

data:  score by store
W = 1093.5, p-value = 0.003499
alternative hypothesis: true location shift is not equal to 0

3. 結果の見方とまとめ

【 ポイント 】

[ 検定結果の読み方 ]

1.W統計量(W = 1093.5)とは?
→ 全データを合わせ小さな順に並べたときの「順位の合計(順位和)」を一方のグループで足し合わせた値です。この値が、2つのグループに偏りがないとした場合の期待値からどれくらい離れているかを示しています。

2.なぜその結論になるのか?(p値との関係)
→ W = 1093.5 という偏りが「偶然に起こる確率」を計算したものが p-value = 0.003499 です。これが一般的な基準である 0.05(5%)を大きく下回っているため、「偶然ではなく、店舗Aと店舗Bの間には明確な満足度の差(分布のズレ)がある」と判断できます。

3.中央値の比較
→ 店舗Aの中央値は 3.5、店舗Bの中央値は 3.0 であり、店舗Aの方が満足度が高い傾向にあることが裏付けられます。


4. まとめ

アンケート結果など正規分布に従わない順序データを扱うときは、無理にt検定を使わず wilcox.test() によるWMW検定を選択するのが安全です。