• ベストアンサー

PHP、MySQLでテキストを処理する

英語やドイツ語など、スペースで区切られた言葉で作られた任意の文書を解析 したいのです。解析内容は、単語ごとに分解し、その単語が出現した回数をカウントし DB(MySQLなど)に格納します。PHPとMySQLで何とか実現したいのですが、どのような 方法で、どんな関数を使うかなど教えていただけないでしょうか。 入力されるデータはTEXT形式(WORDもあり)で、WebのフォームからCut&Pasteや 直接打ち込み などの方法で入れます。格納形式は半角の小文字です。 DBに格納されたデータは別のDBと連携させる予定です。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • neko-ten
  • ベストアンサー率55% (1287/2335)
回答No.1

実像不明な部分も多いので、セキュリティとか考えない状態です。 SQLなどのセキュリティは別途考察お願いします。 分解はPHPでexplode使えばすぐできるかな 例外がどれくらい出るかは運用次第かもしれないけど、非マルチバイトなら比較的スムーズに済みそうです。 カンマ、ピリオド、改行などの扱いをちょっと考えなければいけないですね。(入らない運用ならよし) http://php.plus-server.net/function.explode.html 個数を数えるのはPHPでもMySQLでもできそうですが、MySQLに格納するのが個数なのかな? PHPなら、splitで分割すればそのまま配列にはいるんで、array_count_valuesつかえば一発なきがする http://php.plus-server.net/function.array-count-values.html

jetkun
質問者

お礼

初心者なので、どんな情報でも助かります。ありがとうございます。まだセキュリティ・・ということを考えるレベルではないので一歩一歩です。またよろしくお願いします。

その他の回答 (3)

noname#244856
noname#244856
回答No.4

補足。 str_word_count単体では目的を達成できないので、$formatに1を指定して取得した配列にarray_count_valuesを使ってください。

noname#244856
noname#244856
回答No.3

単語がスペースで区切られた言語向けにならば、実はPHPに強力な標準関数が実装されているので、それを使いましょう。 str_word_count http://php.net/manual/ja/function.str-word-count.php マニュアルを熟読してください。

  • neko-ten
  • ベストアンサー率55% (1287/2335)
回答No.2

訂正 splitで分割すれば ↓ explodeで分割すれば こんなミスする人間ですんで、きちんと詳しい方の回答もさんこうにしてくだしあ・・・

jetkun
質問者

お礼

初心者なので、どんな情報でも助かります。ありがとうございます。じっくり勉強して、また質問させて下さい。

関連するQ&A

専門家に質問してみよう