サンプル・プログラムの実行例
サンプル・プログラム
| SimilarMorpheme.php | サンプル・プログラム本体。 |
| .pahooEnv | クラウドサービスを利用するためのアカウント情報などを記入する .env ファイル。 使い方は「各種クラウド連携サービス(WebAPI)の登録方法」を参照。include_path が通ったディレクトリに配置すること。 |
| pahooInputData.php | データ入力に関わる関数群。 使い方は「数値入力とバリデーション」「文字入力とバリデーション」などを参照。include_path が通ったディレクトリに配置すること。 |
| バージョン | 更新日 | 内容 |
|---|---|---|
| 6.6.0 | 2026/01/11 | PHP8.5対応:double→float |
| 1.5.0 | 2025/09/06 | .pahooEnv導入 |
| 1.4.0 | 2023/03/18 | 日本語形態素解析v2に対応 |
| 1.3 | 2022/01/04 | PHP8対応,リファラ・チェック改良,WebAPI更新 |
| 1.2 | 2017/04/08 | PHP7対応 |
| バージョン | 更新日 | 内容 |
|---|---|---|
| 2.0.1 | 2025/08/11 | getParam() bug-fix |
| 2.0.0 | 2025/08/11 | pahooLoadEnv() 追加 |
| 1.9.0 | 2025/07/26 | getParam() 引数に$trim追加 |
| 1.8.1 | 2025/03/15 | validRegexPattern() debug |
| 1.8.0 | 2024/11/12 | validRegexPattern() 追加 |
準備:PHP の https対応
クラウド連携や相手先サイトのデータを読み込むのに https通信を使うため、PHPに OpenSSLモジュールが組み込まれている必要がある。関数 phpinfo を使って、下図のように表示されればOKだ。
そうでない場合は、次の手順に従ってOpenSSLを有効化し、PHPを再起動させる必要がある。

Windowsでは、"php.ini" の下記の行を有効化する。

これで準備は完了だ。
Windowsでは、"php.ini" の下記の行を有効化する。
extension=php_openssl.dllLinuxでは --with-openssl=/usr オプションを付けて再ビルドする。→OpenSSLインストール手順
これで準備は完了だ。
準備:pahooInputData 関数群
PHPのバージョンや入力データのバリデーションなど、汎用的に使う関数群を収めたファイル "pahooInputData.php" が同梱されているが、include_path が通ったディレクトリに配置してほしい。他のプログラムでも "pahooInputData.php" を利用するが、常に最新のファイルを1つ配置すればよい。

また、各種クラウドサービスに登録したときに取得するアカウント情報、アプリケーションパスワードなどを登録した .pahooEnv ファイルから読み込む関数 pahooLoadEnv を備えている。こちらについては、「各種クラウド連携サービス(WebAPI)の登録方法」をご覧いただきたい。
また、各種クラウドサービスに登録したときに取得するアカウント情報、アプリケーションパスワードなどを登録した .pahooEnv ファイルから読み込む関数 pahooLoadEnv を備えている。こちらについては、「各種クラウド連携サービス(WebAPI)の登録方法」をご覧いただきたい。
サンプル・プログラムの流れは、「PHPで形態素解析を行う」と「PHPで2つの文章の類似度を計算する(KAKASI版)」を組み合わせただけなので、ここでは省略する。

なお、「日本語形態素解析Webサービス」を利用するためには、アプリケーションIDを取得する必要がある。入手方法は「Yahoo!JAPAN デベロッパーネットワーク - 各種WebAPIの登録方法」を参照されたい。
取得したIDは .pahooEnv ファイルに記入するか、定数 YAHOO_APPLICATION_ID に格納する。
なお、「日本語形態素解析Webサービス」を利用するためには、アプリケーションIDを取得する必要がある。入手方法は「Yahoo!JAPAN デベロッパーネットワーク - 各種WebAPIの登録方法」を参照されたい。
取得したIDは .pahooEnv ファイルに記入するか、定数 YAHOO_APPLICATION_ID に格納する。
サンプル・プログラムの実行結果
「PHPで2つの文章の類似度を計算する(KAKASI版)」と同じテキストを使って実行してみよう。

まず、「元のテキスト」として、以下のWikipediaの引用文を入れる。これは「PHP: Hypertext Preprocessor」からの抜粋である。
2つめの文章は、一見すると元の文章とは異なっているが、じつはWikipediaの引用文の順番を変えただけである。
このような違いでは、かなり高い類似度の値となる。

次に、「比較するテキスト」に以下の文章を入れて実行してみていただきたい。これは「PHPとは何か」(ぱふぅ家のホームページ)の冒頭部分である。

「PHPで2つの文章の類似度を計算する(KAKASI版)」での、最初の比較例では 75.5%、2番目の比較例では 45.1% だった。
同じ形態素解析という方法でも、形態素に分解するアルゴリズムが違うことで、これだけの差が出る。

ちなみに、PHPとはまったく関係ない以下のテキストを「比較するテキスト」に入れてみると――
まず、「元のテキスト」として、以下のWikipediaの引用文を入れる。これは「PHP: Hypertext Preprocessor」からの抜粋である。
PHP: Hypertext Preprocessor(ピー・エイチ・ピー ハイパーテキスト プリプロセッサー)とは、動的にHTMLデータを生成することによって、動的なウェブページを実現することを主な目的としたプログラミング言語、およびその言語処理系である。「比較するテキスト」には、以下の文章を入れてみよう。
PHPは、HTML埋め込み型のサーバサイド・スクリプト言語として分類される。この言語処理系自体は、C言語で記述されている。
PHP(Hypertext Preprocessor;ピー・エイチ・ピー)とは、動的にHTMLデータを生成することによって、動的なウェブページを実現すること目的としたプログラミング言語である。結果は 98.8% である。
PHPは、HTML埋め込み型のサーバサイド・スクリプト言語の一種で、処理系自体はC言語で記述されている。
2つめの文章は、一見すると元の文章とは異なっているが、じつはWikipediaの引用文の順番を変えただけである。
このような違いでは、かなり高い類似度の値となる。
次に、「比較するテキスト」に以下の文章を入れて実行してみていただきたい。これは「PHPとは何か」(ぱふぅ家のホームページ)の冒頭部分である。
「PHP(Hypertext Preprocessor)」は、オープンソースのサーバ・サイド・スクリプト言語である。結果は 61.0% となる。
サーバ・サイド・スクリプトとは、データベースサーバなどのサーバ群と Web ブラウザ(クライアント)を結ぶインターフェースの役割をするもので、Webサーバ上で動作する。HTMLに比べて、動的なページを実現することができる。
「PHPで2つの文章の類似度を計算する(KAKASI版)」での、最初の比較例では 75.5%、2番目の比較例では 45.1% だった。
同じ形態素解析という方法でも、形態素に分解するアルゴリズムが違うことで、これだけの差が出る。
ちなみに、PHPとはまったく関係ない以下のテキストを「比較するテキスト」に入れてみると――
さきたま古墳公園(埼玉県行田市大字埼玉4834)は、8基の前方後円墳と1基の円墳が集中する東日本最大の古墳遺跡である。類似度は 17.6% になる。一方、KAKASI を使った結果では 9.0% である。
1938年(昭和13年)8月に国の史跡の指定を受け、1968年(昭和43年)には金錯銘鉄剣(きんさくめいてっけん)が出土したことで一躍脚光を浴びた。
参考サイト
- KAKASI:公式サイト
- PHPで2つの文章の類似度を計算する:ぱふぅ家のホームページ
- PHPで2つの文章の類似度を計算する(KAKASI版):ぱふぅ家のホームページ
- PHPで形態素解析を行う:ぱふぅ家のホームページ
(この項おわり)

(2026年1月11日) PHP8.5対応:double→float
(2025年9月15日).pahooEnv導入