PHPプログラム ファイルから数字を抽出

このQ&Aのポイント
  • PHPプログラム初心者の方がテキストファイルから数字を抽出する方法について質問されています。
  • 具体的には、入力文字に対してテキストファイルを検索し、一致する単語の横にある数字を出力して、文章全体の数値を求めたいとのことです。
  • 質問者の目的は、ネガティブかポジティブかを測るために入力文字を評価することです。
回答を見る
  • ベストアンサー

PHPプログラム ファイルから数字を抽出

こんにちは。PHPプログラム初心者です。 今回、Twitterのツイートを取得して、その文章の単語ごとにネガティブかポジティブかを値をつけてくれている辞書を利用して、ツイートのネガポジを測ろうと思っています。 ここでお聞きしたいのが、入力文字に対して、テキストファイルの文字が一致すればその文字の横にある数字を出力して、文章の単語すべて足しあわせて、文章全体の数値を出したいのです。 テキストファイルの内容は -------------------------- 優れる すぐれる 1 良い よい 0.999995 喜ぶ よろこぶ 0.999979 褒める ほめる 0.999979 めでたい めでたい 0.999645 ・・・ --------------------------- といった感じで、-1~1の値が単語ごとに割り振られていて、 数字と単語の間には半角スペースが2つあります。 このテキストファイルを読み込んで、 入力文字(単語ごとに分けられています)に対して、 テキストファイルを検索して「すぐれる」があればその右の1を出力して、 それを繰り返して足しあわせて、文章全体での数値を出して、 全体で負の数字が出ればネガティブ!みたいなことをしたいです。 説明が下手ですみません。 わかりにくい表現があれば追記いたします。 すこしでもヒントがありましたらどんどん回答くだされば嬉しいです。 よろしくお願い致します。

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

(1)専用のインデックスをつくっておく (2)文字ごとにgrepをしてヒット数に係数をかけるような仕組みにする のどちらかがよいかなと。 分かち書きした文字面だけで評価すると「優れるとは思えない」的な 表現が正しく評価されないような気がしますが・・・

rieqop7
質問者

お礼

ありがとうございます。参考になりました。

関連するQ&A

  • PHP ファイル読み取りについて。

    こんにちは。PHPプログラム初心者です。 ファイルから数字を読み取って計算するにはどういうプログラムにすればよいでしょうか。 やりたいのは、テキストファイルを読み込みます。 そのテキストファイルの中には、 --------- 文字 123 あいう 456 もじ 7890 ・・・ --------- といった感じで、文字と数字が並んで入力されています。 文字の中にスペースはなく、文字と数字の間にはスペースがあります。 ここで、ユーザの入力に対して、 「もじ」があればファイルの「もじ」のすぐ隣の「7890」を出力するようにしたいのです。 これを繰り返し、最終的には、出力した数字を合計する作業をしたいです。 説明不足でわかりにくいかもしれませんが、 ヒントだけでも結構ですので、なにかありましたらよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 数字の読み取り

    現在Cでプログラムを作成しています。 プログラムはテキストファイルから最初の列の数字N(最大で50)を読み取り、テキストファイルがN+1列、各列N文字のフォーマットになっているかを読み取ります。 例) 4(この場合4文字の単語が4個、4列に表示されます) test text temp file この場合は問題ありませんが、 一列目の数値がマイナスだったり、1k2など数字以外を含んでいる場合、 または上の例で言うと4文字ではない単語が混ざっていたり、単語の数が4個ではなかったりした場合にエラーメッセージを出力するようにしたいです。 isdigitを使って一列目が数字かどうかは判断できますが、それが二桁だとどうすればいいのか分かりません。 また数字だと分かっても、その数字を実際に数値として活用するにはどうすればいいのでしょうか?

  • 数字の入った配列をファイルへ出力。

    今、hist[256]というint型の配列に数字が入っているとします。 これを、テキストファイルに出力して、 0 242 5654 232 3123 756 ・ ・ ・ こんな感じで、ファイルに出力したいです。 文字としての出力になるのでhist[256]配列を、int型からchar型に変換しないとダメでしょうか? また、変換するとしたら、char型だと unsigned char にしても 0~256の値までしか1つの配列に保存できませんよね? もっと大きい数字も入っているので何とかする方法も教えて下さい。 初歩的な質問で申し訳ありませんが、よろしくお願いします。

  • エクセルVBAで、数字をテキストファイルに書き出したい

    print #1,cells(1,1) のようにセルの値をテキストファイルに書き出しています。 セルには、6が入力されていて、表示は6.00 にしてありますが、書き出すと当然6になってしまいます。セルの書式を、文字列にすればいいのでしょうが、入力や計算の都合で、数値のままにしたいのです。見えている通りにテキストに書き出すには、どのようにしたら良いですか? よろしくお願いいたします。

  • PHP ファイルから文字列を検索し、スペースで区切

    こんにちは。PHPプログラム初心者です。 今回、実装したいのは、テキストファイルを読み込みます。 ----------------------- 優れる:すぐれる 1 良い:よい 0.999995 喜ぶ:よろこぶ 0.999979 褒める:ほめる 0.999979 ・・・ ------------------------ といった内容のテキストファイルです。文字と数字の間には半角スペースがあります。 そして、入力した文字が「良い」であるとします。 その文字をテキストファイルの中にあるかどうか検索して、文字と数字をスペースで分割して、 0.999995を出力したいのです。 この作業を何回か繰り返し、最後に合計を出したいと思っています。 どうすればよいでしょうか。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • エクセルの文字列を抽出する関数を教えてください!

    テキストファイルから文字列をエクセルに貼りつけ、ある条件の単語のみを抽出する関数について教えてください。 (1)あらゆる文字・記号で構成されている文章のうち、” ”(二重引用符)で囲まれた中のその文字列だけを抽出するには、どのような関数があるのでしょうか。 (2)ある文章は、 (文字数はバラバラの文章).1-文章.doc、 (文字数はバラバラの文章).2-文章.doc、  ・・・ となっているテキストがあるのですが、そのテキストのうち、「数字ー」の形式は同じなのですが、その「(数字)‐」以降「.doc」までの文章のみ抽出するには、どのような関数になるのでしょうか。 マクロは組めませんので、関数で教えて頂ければ幸いです。 宜しくお願いします。

  • PHPでファイルから取り込んだ数字で計算できない

    test.txtの内容 ------ 10 ------ のとき、 <? $file="test.txt"; //ファイルの中の行を配列に格納 $ary=file($file); //テキストファイル内の数字を取得 foreach ( $ary as $key => $value ) { $value = str_replace(array("\r\n","\r","\n"), "", $value); if (strlen($value )>0){ $a=trim($value); } } $a=$a+1; print $a; ?> として、11が出力されることを期待したのですが、 1が出力されてしまいます。 11を出力されるにはどうしたらよいでしょうか? どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • javaの初心者向けプログラムの宿題です

    「指定された値の倍数を10個表示するプログラム」 です。 選択授業で取ったjavaプログラミングの宿題ですが行き詰ってしまいました。 部分的にはなんとなく理解できるのですが、全体像がつかめません。 流れだけでもご教示願います。 (1)値の入力を促す「数値入力」メッセージを表示し、文字列入力を待機する。 (2)その入力から文字列を取得して文字列をint型の数値に変換。 (3) 入力された文字列が数値以外の場合は、例外(NumberFormatException)が発生した場合に、メッセージ「半角数字で数値指定」を表示してアプリケーションを終了。 (4) 倍数を表示できる数値の範囲は、2以上100未満、範囲外の数値が入力された場合にはメッセージ「[入力から取得した数値]の倍数は表示できません。0から100までの数値を指定してください。」を表示してアプリケーションを終了。 注) 処理を開始するメッセージを表示し、入力された数値の倍数を標準出力に10個表示する。 各数値は、タブ(¥t)で区切り、5個表示毎に改行。 倍数は、0を含めて表示。 よろしくおねがいします。

  • PHPのis_numeric関数の使い方について

    添付ファイルの検索フォームで文字条件検索と数値条件検索それぞれの テキストボックスの検索ボタンを押したとき、入力されている文字に応じて以下 の処理をis_numeric関数で実装するにはどうすればいいでしょうか? PHPに詳しい方いましたら教えて頂きたいです。 ・文字条件検索 未入力:未入力であることを伝えるエラーメッセージの表示 ・数値条件検索 数値入力:数字以外の文字が入力された場合はエラーメッセージを表示(数字が入力された場合は戻り値TRUEを返す) 未入力:未入力であることを伝えるエラーメッセージの表示

    • ベストアンサー
    • PHP
  • テキストデータなのに数字とは

    コンピューターでテキストデータというと文字データのことだとよく言われますが、エクセル等で数値入力のセルのデータ(つまり数値)もTXT拡張子でしっかりと数字が出てくるのですが、このあたりの認識に仕方がいま一つ分かりません。数値データでも表示上はテキストとしてのデータとリンクしてたり・・・とか色々考えますが実際の所どうなのでしょうか?文字と数値は別のものなのでは。

専門家に質問してみよう