对下面这段话写出代码:对词频出现次数较高的词汇放入特征词典中,31个类的特征词都放到一个文档里。然后对训练集的31个类的文档用one-hot向量化,即将每个文档中的每个句子表示成与特征词典一样长度的向量,遍历特征词典,只要句子中包含当前的特征词,标记为1,否则标记为0。
时间: 2024-06-03 10:12:07 浏览: 217
统计一篇文档中每个单词出现的次数,频率
4星 · 用户满意度95%
import re
text = "对下面这段话写出代码:对词频出现次数较高的词汇放入特征词典中,31个类的特征词都放到一个文档里。然后对训练集的31个类的文档用one-hot向量化,即将每个文档中的每个句子表示成与特征词典一样长度的向量,遍历特征词典,只要句子中包含当前的特征词,标记为1,否则标记为0。"
freq_words = []
feature_dict = {}
doc = ""
# 获取文本中出现次数较高的词汇
words = re.findall(r'\b([a-zA-Z]+)\b', text)
word_count = {}
for word in words:
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
sorted_words = sorted(word_count.items(), key=lambda x: x[1], reverse=True)
for i in range(31):
freq_words.append(sorted_words[i][0])
# 将特征词放入特征词典
for word in freq_words:
feature_dict[word] = len(feature_dict)
# 将31个类的文档放入一个文档中
with open('file1.txt', 'r') as f:
for line in f.readlines():
doc += line.strip() + ' '
# 对文档用one-hot向量化
doc_vector = []
for i in range(31):
temp = []
with open('file' + str(i+1) + '.txt', 'r') as f:
for line in f.readlines():
line = line.strip()
temp_vector = [0] * len(feature_dict)
for word in re.findall(r'\b([a-zA-Z]+)\b', line):
if word in feature_dict:
temp_vector[feature_dict[word]] = 1
temp += temp_vector
doc_vector.append(temp)
阅读全文