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
广告