• 締切済み

漢字の出現頻度の検索方法

テキストファイルの言語データ(たとえば小説など)で、漢字の出現頻度を調べたいのですが、どのように調べたらいいかわかりません。 テキストファイル中の言語データで、どの漢字がいくつ使われているのかというように調べていきたいのですが。。。 ご存知の方がいらっしゃったら、教えていただけたらと思います。よろしくお願いします。

  • lucha
  • お礼率75% (3/4)

みんなの回答

  • bardfish
  • ベストアンサー率28% (5029/17765)
回答No.2

私だったらPerlの連想配列を利用して自分でプログラムを組んでしまいます。 C言語やBASIC言語なんかより遙かに簡単だし処理速度もかなり高速になります。 何を言っているかわからないかもしれませんが調べてみてください(^^;

lucha
質問者

お礼

がんばって調べてみます。

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.1

2文字とか3文字の熟語の出現頻度だったら難しいけど、1文字単位の出現頻度は簡単でしょう。 1.漢字を登録するテーブルと、その使用数を登録するテーブルを用意し、初期クリアする。 2.テキストファイルから1文字づつ読み込みながら次の処理をする 3.その文字が漢字だったら、登録済みの漢字テーブルと比較し、     同じ漢字があったらその使用数を1増やす     同じ漢字がなかったら漢字テーブルに登録し使用数を1とする

lucha
質問者

お礼

やってみます。ありがとうございます。

関連するQ&A

  • テキストファイルから漢字や数値を検索する方法

    C言語初心者です。自分の力では解決できそうもないので質問しました。よろしくお願いします。 テキストファイルをオープンして、そのファイルにある特定の漢字を 検索するプログラムはどのように書けばよいのでしょうか。 例:テキストファイル: sample.txt(500byet) 検索する漢字  : こんにちわ よろしくお願いします。

  • 英単語の出現頻度を調べるには

    平均的なアメリカの社会人が日常生活で接する英単語の出現頻度ベスト100くらいまでを知りたいのですが。そのようなことがわかるサイトを御存知の方がいましたら教えて下さい。 (a・the・it などの超基本単語も含めての結果です) (大学入試の英文からのデータでもけっこうです。が、その場合も超基本単語が含まれていることが必要です) (ベスト100未満でもけっこうです)

  • 形態素解析から単語出現頻度計算

    C初心者です。 Mecabである文章の形態素解析を行ったのですが、そこから出現回数を調べたいのです。 形態素解析の結果が(テキスト文書で出力すると) 例)------ 10 名詞,数,*,*,*,*,* 年 名詞,接尾,助数詞,*,*,*,年,ネン,ネン の 助詞,連体化,*,*,*,*,の,ノ,ノ 歳月 名詞,一般,*,*,*,*,歳月,サイゲツ,サイゲツ と 助詞,並立助詞,*,*,*,*,と,ト,ト -------- のように余分な文字(名詞etc..)が入っているのでどうしたらよいのか分りません。 テキストファイル(またはcsvファイル)から読み込んで、一般名詞だけ頻度計算を行うにはどのようなプログラムを書けばよいのでしょうか? 過去の質問を読んでも、いらないものを省く方法が分からなかったもので。よろしくお願いします。

  •  キーワード出現頻度解析 がわかりません

     ○キーワード出現頻度解析というところがあり http://www.searchengineoptimization.jp/tools/keyword_density...   [ 例えば、「朝の天気予報」という文の場合、単語に分けると「朝/の/天気/予報」という4つの単語に切り分けられます。この文での「朝」という単語のキーワード出現率は、1/4X100=25(%)となります。] ということらしいのですが 作ったサイトをこの解析にかけましたら 下記のような結果になりました ~~~~~~~~~~~~~~~ File index.html [text/html] タイトル要素 恋ノウタ(恋愛専門待受サイト) meta keywords 恋愛待受,恋する女,恋空,恋占い,恋の詩,ひだまり, meta description 構成単語数 63 総単語数 88 出現頻度 ※頻出回数10回未満の単語を省略 ~~~~~~~~~~~~ 本当なら ○○のキーワードが何%とでてくるはずなんです この結果の意味がわからないことと 恋のキーワードで10%にしたいのですが どこをどう直したらよいのか全くわかりません どなたか教えていただけますか?

  • 学年別漢字配当表をどう改定したいですか。

    あなたなら,小学校で習う漢字(教育漢字)の一覧表“学年別漢字配当表”をどう改定したいですか。私は次のように改定したいです。以下選定基準。 (1)漢字出現頻度数調査で500位以内の常用漢字のうち,教育漢字でないものは「候補漢字S」とし,基本的に入れる方向で考える。 (2)漢字出現頻度数調査で501~1000位の常用漢字のうち,教育漢字でないものは「候補漢字A」とし,基本的に入れる方向で考えるが,不要なものは落とす。 (3)漢字出現頻度数調査で1001~1500位の常用漢字のうち,教育漢字でないものは「候補漢字B」とし,特に必要な漢字だけを入れる。 (4)漢字出現頻度数調査で1501位以下の教育漢字は「候補漢字C」とし,削除するか個別に検討する。

  • 正規表現で漢字3文字「大◯◯」を検索したい。

    小説を保存したテキストファイルにある、漢字3文字熟語「大◯◯」を「Word2010」で一度に検索したいです。   例)大火事、大渋滞 など 正規表現を使用すれば可能でしょうか。 「大」あとに、ひらがなやカタカナが1文字くるなら (大)([あ-ん,ア-ン]) でいいと思うのですが、 質問1) 漢字の場合どうなりますか。検索した限りでは    (大)([亜-腕弌-熙])    (大)([一-龠])     で、「大」の後1文字以上漢字がある場合は検索できそうですが、これ以上はわかりませんでした。 質問2) 「大」の後が、2文字熟語<限定>で検索したい場合はどうなるのか。 質問3) 漢字3-4文字の例はあんまりないかもしれませんが、応用が効きそうなので、、、「大」の後、漢字1文字しかないものは含まないー漢字2文字<以上>の場合ーはどうなるのか。 質問4) 漢字の範囲を表す表現は上記のように複数見つかりましたが、一番いい方法というのはあるのでしょうか。使い分けとか有りますか。 を知りたいです。 以上をご存じの方、教えて下さい。 また、フリーソフトなど正規表現以外の方法があれば、それもアドバイスいただければ助かります。 何卒よろしくお願い致します。

  • 英文字の出現頻度

    英語で書かれているファイルを読み込んで英文字の出現頻度を調べるプログラムを作ったのですが、ところどころ正確な数が表示されません。どなたか教えてもらえませんか?欲を言えばスペースや改行もカウントできれば良いのですが・・・よろしくお願いしますm(_ _)m #include <stdio.h> #define N 500 int main(int argc, char *argv[]) { int c,i=0; int X[N]; FILE *fp; char ch[N]; if( argc != 2) { printf("使い方:コマンド名に続きファイル名を入れてください\n"); return -1; } fp = fopen( argv[1],"rb"); while(fgets(ch,500,fp) != NULL ) { printf("%sファイルにおけるアルファベットの出現頻度\n",argv[1],ch); { while ((c = getc(fp)) != EOF) if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z') X[c]++; { for (c = 'a'; c <= 'z'; c++) printf("%c:%d\n",c, X[c]); printf("\n"); for (c = 'A'; c <= 'Z'; c++) printf("%c:%d\n",c, X[c] ); printf("\n"); } } } fclose(fp); return 0; }

  • 漢字の読み方について

    アブナー伯父の事件簿という小説を読んでいたら炉喉という漢字がでてきたのですが、この漢字の読み方が分かりません。漢字に詳しい方もしくは小説を読んだ方おしえてください。

  • 単語の出現頻度を調べるプログラム

     ファイルからデータを読み込んで、単語の出現頻度を調べるプログラムを作ろうと考えて、下記のようなプログラムを書いてみました。 #include <stdio.h> #include <string.h> main() { struct data {char word[128]; int freq;} word_data[128]; char words[128]; char term[128]; int i=0; int nw=0; int j; char buff[128]; FILE *fp_in=fopen("data.txt","r"); while(fgets(fp_in,128,buff)!=EOF){ char buff[128]; int k; for(k=0;k<=128;k++){ printf("%s",buff); if(('A'<=buff[k] && buff[k]<='Z')||('a'<=buff[k] && buff[k]<='z')) term[i++]=buff[k]; else if(i>0) term[i]='\0';} for(j=0;j<nw;j++){ if(strcmp(term,word_data[j].word)==0) break; if(j==nw) {strcpy(word_data[j].word,term); word_data[j].freq=1; nw++;} else if(j!=nw) {word_data[j].freq++; i=0;} }} for(j=0;j<nw;j++) printf("%s %d",word_data[j].word,word_date[j].freq); return 0;} コンパイルは通ったのですが、実行しても画面に何も表示されません。原因は何処にあるのでしょうか?分かる方がいましたら、ご回答宜しくお願いします。

  • 小説に使われる漢字について。

    小説に使われる漢字について。 小説には常用外の漢字がよく使われていますが、これは単純に小説が古いだけでしょうか? 雰囲気を出すために(?)、わざと常用外の難しい漢字を使うことってあるのですかね? そんなに古そうでもない小説でも、常用外の漢字が使われている気がするのですが。 分かる方いらっしゃいますか? けっこうイライラするのです・・・。