这是我用于Twitter语义分析的代码:-
import pandas as pd
import datetime
import numpy as np
import re
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
from nltk.stem.wordnet import WordNetLemmatizer
from nltk.stem.porter import PorterStemmer
df=pd.read_csv('twitDB.csv',header=None,
sep=',',error_bad_lines=False,encoding='utf-8')
hula=df[[0,1,2,3]]
hula=hula.fillna(0)
hula['tweet'] = hula[0].astype(str)
+hula[1].astype(str)+hula[2].astype(str)+hula[3].astype(str)
hula["tweet"]=hula.tweet.str.lower()
ho=hula["tweet"]
ho = ho.replace('\s+', ' ', regex=True)
ho=ho.replace('\.+', '.', regex=True)
special_char_list = [':', ';', '?', '}', ')', '{', '(']
for special_char in special_char_list:
ho=ho.replace(special_char, '')
print(ho)
ho = ho.replace('((www\.[\s]+)|(https?://[^\s]+))','URL',regex=True)
ho =ho.replace(r'#([^\s]+)', r'\1', regex=True)
ho =ho.replace('\'"',regex=True)
lem = WordNetLemmatizer()
stem = PorterStemmer()
fg=stem.stem(a)
eng_stopwords = stopwords.words('english')
ho = ho.to_frame(name=None)
a=ho.to_string(buf=None, columns=None, col_space=None, header=True,
index=True, na_rep='NaN', formatters=None, float_format=None,
sparsify=False, index_names=True, justify=None, line_width=None,
max_rows=None, max_cols=None, show_dimensions=False)
wordList = word_tokenize(fg)
wordList = [word for word in wordList if word not in eng_stopwords]
print (wordList)
输入即:-
tweet
0 1495596971.6034188::automotive auto ebc greens...
1 1495596972.330948::new free stock photo of cit...
以以下格式获取输出(wordList):
tweet
0
1495596971.6034188
:
:automotive
auto
我只希望以行格式输出一行。我该怎么做?如果您有更好的Twitter语义分析代码,请与我分享。
简而言之:
df['Text'].apply(word_tokenize)
或者,如果您想添加另一列来存储标记化的字符串列表:
df['tokenized_text'] = df['Text'].apply(word_tokenize)
有专门针对Twitter文本编写的标记生成器,请参见http://www.nltk.org/api/nltk.tokenize.html#module-
nltk.tokenize.casual
使用方法nltk.tokenize.TweetTokenizer
:
from nltk.tokenize import TweetTokenizer
tt = TweetTokenizer()
df['Text'].apply(tt.tokenize)
问题内容: 在您希望POS标记存储在熊猫数据框中的一列文本(每行只有一句话)的情况下,SO上的大多数实现都使用apply方法 NLTK文档建议使用pos_tag_sents()有效标记多个句子。 这是否适用于此示例,如果是,那么代码是否像更改为那样简单,或者NLTK意味着段落的文本源 正如评论中提到的那样,目的是每次都减少感受器的负载, 但是问题是如何做到这一点,并且仍然在熊猫数据框中生成一列?
问题内容: 我可以从python连接到本地mysql数据库,并且可以创建,选择并插入单个行。 我的问题是:我可以直接指示mysqldb提取整个数据帧并将其插入到现有表中,还是需要遍历行? 在这两种情况下,对于具有ID和两个数据列以及匹配的数据帧的非常简单的表,python脚本的外观如何? 问题答案: 更新: 现在有一种方法,而不是: 另请注意:语法可能会在熊猫0.14中更改… 您可以使用MySQL
问题内容: 当我对数据框中的单个元素进行比较时出现错误,但我不明白为什么。 我有一个数据框df,其中包含许多客户的时间序列数据,其中包含一些空值: 在我的脚本中,该行 生成一个错误: 但是,如果我在脚本行上放置了一个断点,并且在脚本停止时我将其输入到控制台中: 输出为: 如果我允许脚本从这一点继续执行,则会立即生成错误。 如果布尔表达式可以求值并具有值,为什么它在if表达式中生成错误?这对我来说毫
我有一个csv格式的表格,看起来像这样。我想转置该表,以便指示符名称列中的值是新列, 我希望最终结果是这样的: 我尝试过使用熊猫数据框架,但没有多大成功。 你有没有想过如何做到这一点? 谢谢
问题内容: 这可能很容易,但是我有以下数据: 在数据框1中: 在数据框2中: 我想要一个具有以下形式的数据框: 我尝试使用该方法,但是得到了交叉连接(即笛卡尔积)。 什么是正确的方法? 问题答案: 通常看来,您只是在寻找联接:
问题内容: 我正在编写一个脚本,以将带有标头的大.xlsx文件减少到一个csv中,然后根据标头名称仅写有所需列的新csv文件。 我得到的错误是最后一部分代码,它说 我确定我忽略了一些愚蠢的事情,但是我已经阅读了熊猫网站上的to_csv文档,但我仍然感到茫然。我知道我使用了不正确的to_csv参数,但我似乎无法理解我猜的文档。 任何帮助表示赞赏,谢谢! 问题答案: 选择特定列的方法是这样的-