上海网站设计优刻,wordpress调用百度网盘视频,新商盟显示 检查网站开发错误呢,wordpress z按照阿光的项目做出了学习笔记#xff0c;pytorch深度学习实战项目100例
基于词级ngram的词袋模型对twitter数据进行情感分析
什么是 N 符#xff1f;
N 格是指给定文本或语音样本中 n 个项目的连续序列。这些项目可以是音素、音节、字母、单词或碱基对#xff0c;具体取…按照阿光的项目做出了学习笔记pytorch深度学习实战项目100例
基于词级ngram的词袋模型对twitter数据进行情感分析
什么是 N 符
N 格是指给定文本或语音样本中 n 个项目的连续序列。这些项目可以是音素、音节、字母、单词或碱基对具体取决于应用。N-grams 广泛应用于计算语言学和文本分析中的各种任务如文本预测、拼写校正、语言建模和文本分类。它们为文本挖掘和自然语言处理NLP提供了一种简单而有效的方法。
###了解 N 符
n-gram 的概念很简单它是由 ‘n’ 个连续项组成的序列。下面是一个细分
Unigram (n1) 单个项目或单词。Bigram (n2) 一对连续的项目或单词。Trigramn3 连续的三联项或词。
示例
考虑一下这个句子 “敏捷的棕狐狸跳过懒惰的狗。
Unigram “The“、”quick“、”brown“、”fox“、”jumps“、”over“、”the“、”l lazy“、”dog”Bigram “快“、”棕色快“、”棕色狐狸“、”狐狸跳“、”跳过“、”过“、”懒“、”懒狗”Trigram “棕色的快“、”棕色的狐狸快“、”棕色的狐狸跳“、”狐狸跳过“、”跳过“、”跳过懒惰“、”懒惰的狗”
上下文和用途
Unigram 除单个词条外这些词条不包含任何上下文。Bigrams 通过将连续的项目配对提供最基本的语境。Trigrams 这些词组开始形成更加连贯和与上下文相关的短语。
随着’n’的增加n-grams 可以捕捉到更多的上下文但由于计算费用的增加和数据的稀疏性其收益也会逐渐减少。
###实际应用
N-gram 在各种 NLP 任务中至关重要
文本预测 预测序列中的下一个词。拼写纠正 根据上下文识别并纠正拼写错误的单词。语言建模创建理解和生成人类语言的模型。4.文本分类 根据内容将文本归入预定义的类别。
通过理解和利用 n-gram可以提高 NLP 模型在这些任务中的性能和准确性。
Twitter 情感分析数据集包含 1,578,627 条分类推文每一行的正面情感标记为 1负面情感标记为 0。我建议使用语料库的 1/10 来测试你的算法而其余的可以用来训练你用来进行情感分类的任何算法。我试着用一个非常简单的 Naive Bayesian 分类算法来使用这个数据集结果是 75% 的准确率考虑到长期的猜测工作方法会达到 50% 的准确率一个简单的方法可以给你带来比猜测工作高 50% 的性能这并不是很好但考虑到一般情况下尤其是在涉及到社交传播情感分类时人类进行的 10% 的情感分类是有争议的任何分析文本整体情感的算法所希望达到的最高相对准确率是 90%这并不是一个坏的起点。
http://thinknook.com/twitter-sentiment-analysis-training-corpus-dataset-2012-09-22/
x_train, x_test, y_train, y_test train_test_split(data[SentimentText], data[Sentiment], test_size0.1,random_state2022)print(x_train.shape, x_test.shape, y_train.shape, y_test.shape)
#(682294,) (75811,) (682294,) (75811,)import pandas as pd
import csv
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_scoretry:data pd.read_csv(/content/drive/MyDrive/Niek/Sentiment Analysis Dataset.csv, quotingcsv.QUOTE_NONE, on_bad_linesskip, encodingutf-8)
except pd.errors.ParserError as e:print(fError parsing CSV: {e})dataTF-IDF 是 Term Frequency Inverse Document Frequency 的缩写。这是一种非常常见的算法用于将文本转化为有意义的数字表示并将其用于机器算法的预测。在深入解释之前让我们先举例说明并探索两种不同的辣味稀疏矩阵。这可以让你对我下面要解释的内容有一个整体的了解。简单的基本示例数据
# 初始化TF-IDF向量化器
vectorizer_word TfidfVectorizer(max_features40000, # 最多使用40000个特征词min_df5, # 至少在5个文档中出现的词才会被考虑max_df0.5, # 在50%以上的文档中出现的词会被忽略analyzerword, # 词级别的分析stop_wordsenglish, # 去除英语停用词ngram_range(1, 2)) # 考虑1-2元组# 使用训练数据拟合向量化器
vectorizer_word.fit(x_train.astype(U).str.lower())# 将训练集和测试集文本转化为TF-IDF矩阵
tfidf_matrix_word_train vectorizer_word.transform(x_train.astype(U).str.lower())
print(TF-IDF Matrix for Training Data (Dense Format):\n)
print(tfidf_matrix_word_train)
tfidf_matrix_word_test vectorizer_word.transform(x_test.astype(U).str.lower())
print(TF-IDF Matrix for Test Data (Dense Format):\n)
print(tfidf_matrix_word_test)该代码段首先初始化并训练一个逻辑回归模型然后使用训练好的模型对训练集和测试集进行预测最后计算并打印模型在训练集和测试集上的准确性。
# 初始化并训练逻辑回归模型
model LogisticRegression(solversag)
model.fit(tfidf_matrix_word_train, y_train)# 预测训练集和测试集的结果
y_pred_train model.predict(tfidf_matrix_word_train)
y_pred_test model.predict(tfidf_matrix_word_test)# 打印训练集和测试集的准确性
print(accuracy_score(y_train, y_pred_train))
#0.8014386845292767
print(accuracy_score(y_test, y_pred_test))
#0.7856396908790025代码资源