Python3中的文本分析
在本练习中,我们将处理文件。文件在宇宙中随处可见。在计算机系统中,文件是必不可少的组成部分。操作系统包含大量文件。
Python 有两种类型的文件 - 文本文件和二进制文件。
这里我们将讨论文本文件。
这里我们将重点介绍一些关于文件的常用函数。
- 单词数量
- 字符数量
- 平均单词长度
- 停用词数量
- 特殊字符数量
- 数字数量
- 大写单词数量
我们有一个测试文件“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
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP