- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 csv 文件(或 txt 文件)中的语料库(30,000 条客户评论)。这意味着每个客户评论都是文本文件中的一行。一些例子是:
我想将这些文本更改为以下内容:
我有两个单独的积极词和消极词列表(词典)。例如,一个文本文件包含如下积极的词语:
并且,文本文件包含以下负面单词:
所以,我想要读取客户评论的Python脚本:当找到任何积极的词时,然后在积极的词后面插入“积极”;当发现任何负面词时,则在正面词后面插入“NEGATIVE”。
这是我迄今为止测试过的代码。这是可行的(请参阅下面代码中我的评论),但它需要改进才能满足我上面描述的需求。
具体来说,my_escaper
可以工作(此代码找到诸如“便宜”和“好”之类的词,并将它们替换为便宜的积极和良好的积极),但问题是我有两个文件(词典),每个文件包含大约一千个积极/消极的单词。所以我想要的是代码从词典中读取这些单词列表,在语料库中搜索它们,并替换语料库中的这些单词(例如,从“好”到“好积极”,从“坏”到“坏”负”)。
#adapted from http://stackoverflow.com/questions/6116978/python-replace-multiple-strings
import re
def multiple_replacer(*key_values):
replace_dict = dict(key_values)
replacement_function = lambda match: replace_dict[match.group(0)]
pattern = re.compile("|".join([re.escape(k) for k, v in key_values]), re.M)
return lambda string: pattern.sub(replacement_function, string)
def multiple_replace(string, *key_values):
return multiple_replacer(*key_values)(string)
#this my_escaper works (this code finds such words as cheap and good and replace them with cheap POSITIVE and good POSITIVE), but the problem is that I have two files (lexicons), each containing about thousand positive/negative words. So what I want is that the codes read those word lists from the lexicons, search them in the corpus, and replace those words in the corpus (for example, from "good" to "good POSITIVE", from "bad" to "bad NEGATIVE")
my_escaper = multiple_replacer(('cheap','cheap POSITIVE'), ('good', 'good POSITIVE'), ('avoid', 'avoid NEGATIVE'))
d = []
with open("review.txt","r") as file:
for line in file:
review = line.strip()
d.append(review)
for line in d:
print my_escaper(line)
最佳答案
一种简单的编码方法是将词典中的正面和负面单词加载到单独的集合中。然后,对于每个评论,将句子拆分为单词列表,并在情绪集中查找每个单词。检查集成员资格是 O(1) in the average case 。将情感标签(如果有)插入单词列表中,然后连接以构建最终字符串。
示例:
import re
reviews = [
"This bike is amazing, but the brake is very poor",
"This ice maker works great, the price is very reasonable, some bad smell from the ice maker",
"The food was awesome, but the water was very rude"
]
positive_words = set(['amazing', 'great', 'awesome', 'reasonable'])
negative_words = set(['poor', 'bad', 'rude'])
for sentence in reviews:
tagged = []
for word in re.split('\W+', sentence):
tagged.append(word)
if word.lower() in positive_words:
tagged.append("POSITIVE")
elif word.lower() in negative_words:
tagged.append("NEGATIVE")
print ' '.join(tagged)
虽然这种方法很简单,但有一个缺点:由于使用 re.split()
,您会丢失标点符号。
关于python - 使用 Python 插入码字来修改语料库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29806462/
我尝试使用R,jiebaR和语料库为中文语音生成词云并获取词频,但无法制作语料库。这是我的代码: library(jiebaR) library(stringr) library(corpus) cu
我试图在 R 中做一些词干化,但它似乎只适用于单个文档。我的最终目标是一个术语文档矩阵,它显示文档中每个术语的频率。 下面是一个例子: require(RWeka) require(tm) requi
我一直在利用许多不同的语料库进行自然语言处理,并且我一直在寻找使用 Wordnet Word Senses 注释的语料库。 我知道可能没有一个包含这些信息的大语料库,因为语料库需要手动构建,但必须有一
请,请,请帮助。我有一个文件夹,里面装满了我想使用 NLTK 进行分析的文本文件。我如何将其导入为语料库,然后在其上运行 NLTK 命令?我已经将下面的代码放在一起,但它给了我这个错误: ra
除了nltk自带的语料库之外,我想用自己的遵循相同词性规则的语料库来训练它。如何找到它正在使用的语料库,以及如何添加我自己的语料库(另外,不是作为替代)? 编辑:这是我当前使用的代码: inpy =
我想使用 tweeter_sample 语料库训练 nltk,但当我尝试按类别加载示例时出现错误。 首先我尝试这样: from nltk.corpus import twitter_samples d
我想使用 tweeter_sample 语料库训练 nltk,但当我尝试按类别加载示例时出现错误。 首先我尝试这样: from nltk.corpus import twitter_samples d
我正在尝试对大型文本文件中最常用的词进行排名 - - 爱丽丝梦游仙境(公共(public)领域)。这是爱丽丝梦游仙境 Dropbox和 Pastebin .它按预期运行,有 1818 个“the”实例
我希望对一些本地 Lilypond (.ly) 文件进行语料库研究,但我无法将它们导入本地 music21 语料库。 我只能假设答案在 music21.converter 上页面,但我似乎无法解开它。
有没有办法训练现有的 Apache OpenNLP POS Tagger 模型?我需要为特定于我的应用程序的模型添加更多专有名词。当我尝试使用以下命令时: opennlp POSTaggerTrain
我需要从一个巨大的数据帧(或任何与 r 数据帧等效的 python)创建一个语料库,方法是将它分成与用户名一样多的数据帧。 例如,我从这样的数据框开始: username search_term
我已经下载了 BLLIP语料库并想将其导入 NLTK。问题的答案中描述了我发现的一种方法 How to read corpus of parsed sentences using NLTK in py
假设我有以下内容: x10 = data.frame(id = c(1,2,3),vars =c('top','down','top'), text1=c('this is text','s
我想使用 R 的分布式计算 tm 包(称为 tm.plugin.dc)制作一个包含 1 亿条推文的文本语料库。这些推文存储在我笔记本电脑上的一个大型 MySQL 表中。我的笔记本电脑很旧,所以我使用的
我的项目使用NLTK。如何列出项目的语料库和模型要求以便自动安装它们?我不想点击 nltk.download() GUI,一一安装软件包。 此外,有什么方法可以卡住相同的需求列表(例如pip free
如何在pytorrch中读入.txt文件(语料库)到torchtext? 我只看到 data.Dataset 的示例数据集和 data.TabularData 的 csv、json 和 tsv。 ht
我已经下载了 Conll 2003 语料库(“eng.train”)。我想用它来使用 python crfsuite 训练来提取实体。但我不知道如何加载这个文件进行训练。 我找到了这个示例,但它不适用
我一直在尝试为特定领域和新实体训练命名实体识别模型。似乎没有一个完整的适合此的管道,并且需要使用不同的包。 我想给NLTK一个机会。我的问题是,如何训练 NLTK NER 使用 ieer 语料库对新实
使用 JupyterLab 打开我的 EMR 集群后。我无法使用 nltk.download() 下载额外的语料库。 代码 nltk.download('wordnet') 错误 I/O operat
有没有人建议在哪里可以找到用于小型语料库的日常英语文本的文件或集合?我一直在使用 Gutenberg Project 书籍作为工作原型(prototype),并希望融入更多现代语言。一个 recent
我是一名优秀的程序员,十分优秀!