- ベストアンサー
PHP、MySQLでテキストを処理する
英語やドイツ語など、スペースで区切られた言葉で作られた任意の文書を解析 したいのです。解析内容は、単語ごとに分解し、その単語が出現した回数をカウントし DB(MySQLなど)に格納します。PHPとMySQLで何とか実現したいのですが、どのような 方法で、どんな関数を使うかなど教えていただけないでしょうか。 入力されるデータはTEXT形式(WORDもあり)で、WebのフォームからCut&Pasteや 直接打ち込み などの方法で入れます。格納形式は半角の小文字です。 DBに格納されたデータは別のDBと連携させる予定です。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
実像不明な部分も多いので、セキュリティとか考えない状態です。 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
その他の回答 (3)
補足。 str_word_count単体では目的を達成できないので、$formatに1を指定して取得した配列にarray_count_valuesを使ってください。
単語がスペースで区切られた言語向けにならば、実はPHPに強力な標準関数が実装されているので、それを使いましょう。 str_word_count http://php.net/manual/ja/function.str-word-count.php マニュアルを熟読してください。
- neko-ten
- ベストアンサー率55% (1287/2335)
訂正 splitで分割すれば ↓ explodeで分割すれば こんなミスする人間ですんで、きちんと詳しい方の回答もさんこうにしてくだしあ・・・
お礼
初心者なので、どんな情報でも助かります。ありがとうございます。じっくり勉強して、また質問させて下さい。
お礼
初心者なので、どんな情報でも助かります。ありがとうございます。まだセキュリティ・・ということを考えるレベルではないので一歩一歩です。またよろしくお願いします。