Python3中的文本分析


在本练习中,我们将处理文件。文件在宇宙中随处可见。在计算机系统中,文件是必不可少的组成部分。操作系统包含大量文件。

Python 有两种类型的文件 - 文本文件和二进制文件。

Text Analysis

这里我们将讨论文本文件。

这里我们将重点介绍一些关于文件的常用函数。

  • 单词数量
  • 字符数量
  • 平均单词长度
  • 停用词数量
  • 特殊字符数量
  • 数字数量
  • 大写单词数量

我们有一个测试文件“css3.txt”,我们将在此文件中进行操作。

单词数量

当我们在句子中计算单词数量时,我们使用split函数。这是最简单的方法。在这种情况下,我们也应用split函数。

示例代码

filename="C:/Users/TP/Desktop/css3.txt"
try:
   with open(filename) as file_object:
   contents=file_object.read()
   except FileNotFoundError:
   message="sorry" +filename
   print(message)
else:
   words=contents.split()
   number_words=len(words)
   print("Total words of" + filename ,"is" , str(number_words))

输出

Total words of C:/Users/TP/Desktop/css3.txt is 3574

字符数量

在这里,我们计算一个单词中的字符数量,这里我们使用单词的长度。如果长度为5,则该单词中有5个字符。

示例代码

filename="C:/Users/TP/Desktop/css3.txt"
try:
   with open(filename) as file_object:
   contents=file_object.read()
   except FileNotFoundError:
   message="sorry" +filename
   print(message)
else:
   words=0
   characters=0
   wordslist=contents.split()
   words+=len(wordslist)
   characters += sum(len(word) for word in wordslist)
   #print(lineno)
   print("TOTAL CHARACTERS IN A TEXT FILE =",characters)

输出

TOTAL CHARACTERS IN A TEXT FILE = 17783

平均单词长度

在这里,我们计算所有单词长度的总和,并将其除以总长度。

示例代码

filename="C:/Users/TP/Desktop/css3.txt"
try:
   with open(filename) as file_object:
   contents=file_object.read()
   except FileNotFoundError:
   message="sorry" +filename
   print(message)
else:
   words=0
   wordslist=contents.split()
   words=len(wordslist)
   average= sum(len(word) for word in wordslist)/words    
   print("Average=",average)

输出

Average= 4.97

停用词数量

要解决这个问题,我们使用Python中的NLP库。

示例代码

from nltk.corpus import stopwords 
from nltk.tokenize import word_tokenize 
my_example_sent = "This is a sample sentence"
mystop_words = set(stopwords.words('english')) 
my_word_tokens = word_tokenize(my_example_sent) 
my_filtered_sentence = [w for w in my_word_tokens if not w in mystop_words] 
my_filtered_sentence = []
for w in my_word_tokens: 
   if w not in mystop_words: 
      my_filtered_sentence.append(w) 
print(my_word_tokens) 
print(my_filtered_sentence) 

特殊字符数量

在这里,我们可以计算其中存在的主题标签或提及的数量。这有助于从我们的文本数据中提取额外信息。

示例代码

import collections as ct
filename="C:/Users/TP/Desktop/css3.txt"
try:
   with open(filename) as file_object:
   contents=file_object.read()
   except FileNotFoundError:
   message="sorry" +filename
   print(message)
else:
   words=contents.split()
   number_words=len(words)
   special_chars = "#"
   new=sum(v for k, v in ct.Counter(words).items() if k in special_chars)
   print("Total Special Characters", new)

输出

Total Special Characters 0

数字数量

在这里,我们可以计算文本文件中存在的数字数据数量。它与计算单词中的字符数量相同。

示例代码

filename="C:/Users/TP/Desktop/css3.txt"
try:
   with open(filename) as file_object:
   contents=file_object.read()
   except FileNotFoundError:
   message="sorry" +filename
   print(message)
else:
   words=sum(map(str.isdigit, contents.split())) 
   print("TOTAL NUMERIC IN A TEXT FILE =",words)

输出

TOTAL NUMERIC IN A TEXT FILE = 2

大写单词数量

使用isupper()函数,我们可以计算文本中大写字母的数量。

示例代码

filename="C:/Users/TP/Desktop/css3.txt"
try:
   with open(filename) as file_object:
   contents=file_object.read()
   except FileNotFoundError:
   message="sorry" +filename
   print(message)
else:
   words=sum(map(str.isupper, contents.split())) 
   print("TOTAL UPPERCASE WORDS IN A TEXT FILE =",words)

输出

TOTAL UPPERCASE WORDS IN A TEXT FILE = 121

更新于: 2019年7月30日

204 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告