生成实现unigram词频统计 的python代码
时间: 2024-01-07 19:02:48 浏览: 37
以下是生成实现unigram词频统计的Python代码:
```
text = "Sample text to count unigrams."
tokens = text.split()
freq = {}
for token in tokens:
if token in freq:
freq[token] += 1
else:
freq[token] = 1
print(freq)
```
该代码可以统计一个字符串中所有单词的频次,其中 `text` 为待统计的字符串,`freq` 为存储单词频次的字典。该代码只能计算unigram(单个的词),若要计算更高阶的n-gram(如bigram、trigram等),需要进行一些修改。
相关问题
生成实现一个文本的unigram词频统计 的python代码
以下是实现一个文本的unigram词频统计的Python代码样例:
```python
text = "the quick brown fox jumps over the lazy dog"
tokens = text.split()
unigrams = {}
for token in tokens:
if token not in unigrams:
unigrams[token] = 1
else:
unigrams[token] += 1
print(unigrams)
```
上述代码将文本字符串按空格分割为单词,然后遍历每个单词,并以字典形式存储每个单词出现的次数(即单词频率),最后打印结果。你可以根据需要进行修改和扩展,例如读取文件、过滤停用词、统计频率排名等等。
python情感分析代码
以下是一个简单的Python情感分析代码示例,基于朴素贝叶斯算法:
```python
import nltk
from nltk.classify import NaiveBayesClassifier
from nltk.sentiment import SentimentAnalyzer
from nltk.sentiment.util import *
from nltk.corpus import subjectivity
# 加载数据集
n_instances = 100
subj_docs = [(sent, 'subj') for sent in subjectivity.sents(categories='subj')[:n_instances]]
obj_docs = [(sent, 'obj') for sent in subjectivity.sents(categories='obj')[:n_instances]]
train_set = subj_docs[:80] + obj_docs[:80]
test_set = subj_docs[80:] + obj_docs[80:]
# 特征提取器
def word_feats(words):
return dict([(word, True) for word in words])
# 训练分类器
sentim_analyzer = SentimentAnalyzer()
all_words_neg = sentim_analyzer.all_words([mark_negation(doc) for doc in train_set])
unigram_feats = sentim_analyzer.unigram_word_feats(all_words_neg, min_freq=4)
sentim_analyzer.add_feat_extractor(extract_unigram_feats, unigrams=unigram_feats)
training_set = sentim_analyzer.apply_features(train_set)
test_set = sentim_analyzer.apply_features(test_set)
trainer = NaiveBayesClassifier.train
classifier = sentim_analyzer.train(trainer, training_set)
# 分类新的文本
text = "I love this movie!"
tokens = nltk.word_tokenize(text)
feats = word_feats(tokens)
print(classifier.classify(feats))
```
在上述代码中,我们首先加载了一个情感分析数据集(来自NLTK数据集),然后定义了一个特征提取器(使用单词作为特征)。接着,我们使用`SentimentAnalyzer`类来训练分类器,并使用训练好的分类器对新的文本进行分类。在本例中,我们将文本`"I love this movie!"`分类为积极情感。