ホームページ  >  記事  >  バックエンド開発  >  Python テキスト統計関数: 西遊記は単語統計演算を使用します

Python テキスト統計関数: 西遊記は単語統計演算を使用します

不言
不言オリジナル
2018-05-07 13:53:273435ブラウズ

この記事では主に、Python テキスト統計関数を使用した西遊記の単語統計操作を紹介し、Python テキストの読み取り、トラバース、統計およびその他の関連操作スキルを例の形式で分析します。この記事では Python の例を紹介しています。西遊記のテキスト統計関数は単語統計演算を使用します。参考のために皆さんと共有してください。詳細は次のとおりです。

1. データ xyj.txt、「西遊記」のテキスト、2.2MB

呉承源先生への追悼、4020 行(段落)

2、「西遊記」の統計: 1. それぞれの漢字が合計で何回出現するか。最も頻繁に出現する漢字はどれですか。

3. 関与するコンテンツ:


1. ファイルの読み込み
3. 辞書の書き込み


5. ソースコード

# coding:utf8
import sys
reload(sys)
sys.setdefaultencoding("utf8")
fr = open('xyj.txt', 'r')
characters = []
stat = {}
for line in fr:
  # 去掉每一行两边的空白
  line = line.strip()
  # 如果为空行则跳过该轮循环
  if len(line) == 0:
    continue
  # 将文本转为unicode,便于处理汉字
  line = unicode(line)
  # 遍历该行的每一个字
  for x in xrange(0, len(line)):
    # 去掉标点符号和空白符
    if line[x] in [' ','', '\t', '\n', '。', ',', '(', ')', '(', ')', ':', '□', '?', '!', '《', '》', '、', ';', '“', '”', '……']:
      continue
    # 尚未记录在characters中
    if not line[x] in characters:
      characters.append(line[x])
    # 尚未记录在stat中
    if not stat.has_key(line[x]):
      stat[line[x]] = 0
    # 汉字出现次数加1
    stat[line[x]] += 1
print len(characters)
print len(stat)
# lambda生成一个临时函数
# d表示字典的每一对键值对,d[0]为key,d[1]为value
# reverse为True表示降序排序
stat = sorted(stat.items(), key=lambda d:d[1], reverse=True)
fw = open('result.csv', 'w')
for item in stat:
  # 进行字符串拼接之前,需要将int转为str
  fw.write(item[0] + ',' + str(item[1]) + '\n')
fr.close()
fw.close()

関連する推奨事項:

Pythonテキスト特徴抽出とベクトル化アルゴリズムの学習例の詳細な説明

Pythonテキスト類似性の編集距離計算の詳細な説明

以上がPython テキスト統計関数: 西遊記は単語統計演算を使用しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。