Python 创建群集时出现错误。_libs.hashtable.Int64HashTable.get_项

Python 创建群集时出现错误。_libs.hashtable.Int64HashTable.get_项,python,python-3.x,pandas,data-mining,sklearn-pandas,Python,Python 3.x,Pandas,Data Mining,Sklearn Pandas,我很久以前就在这个项目中工作,在分析集群时遇到了一些问题。基本上,我使用panda read_csv()(导出为csv的excel文件)从一个包含4000条记录的csv文件中读取一些数据,然后通过删除标点、标记和词干来清除提取的数据,在接下来的步骤中,我创建Tdidf矩阵,并使用k-means创建集群 我使用了以下LIB: 单词标记化、雪球词干分析器、TfidfVectorizer、余弦相似度、KMeans、MDS。使用python 3 from\uuuuu future\uuuuu导入打印功能

我很久以前就在这个项目中工作,在分析集群时遇到了一些问题。基本上,我使用panda read_csv()(导出为csv的excel文件)从一个包含4000条记录的csv文件中读取一些数据,然后通过删除标点、标记和词干来清除提取的数据,在接下来的步骤中,我创建Tdidf矩阵,并使用k-means创建集群

我使用了以下LIB:

单词标记化、雪球词干分析器、TfidfVectorizer、余弦相似度、KMeans、MDS。使用python 3

from\uuuuu future\uuuuu导入打印功能
导入操作系统
导入nltk
作为pd进口熊猫
从nltk.tokenize导入单词\u tokenize
从nltk.stem.snowball导入SnowballStemmer
从sklearn.feature\u extraction.text导入TfidfVectorizer
从sklearn.metrics.pairwise导入余弦_相似性
从sklearn.cluster导入KMeans
从sklearn.manifold导入MDS
从scipy.spatial.distance导入cdist
将matplotlib.pyplot作为plt导入
从字符串导入标点符号
将numpy作为np导入
#文件主体(路径)与文件主体(路径)之间的关系。
#这些属属于原始档案的文本列表
def CrearCorpus(路径):
df=pd.read_csv('./llamadas.csv',usecols=['motivo','respuesta'],分隔符=';'))
语料库=[]
对于范围(14050)内的i:
problema=str(df['motivo'][i])
溶解=str(df['respuesta'][i])
problema_final=problema+“”+解决方案
语料库.附加([最后一个问题,'文件'+str(i+1)])
返回(语料库)
#Eliminar“stopwords”de un texto
def_RemoveStopwords(句子):
单词标记=单词标记化(句子)
stop_words=set(stopwords.words('西班牙语'))
过滤的句子=[w表示单词中的w,如果不是停止词中的w,则表示单词中的w]
过滤的句子=“”
对于w in word_代币:
如果w不在“停止”字中:
过滤句子=过滤句子+“”+w
返回(过滤的句子)
#Lee cada uno de los documents desde el corpus y generals los textos y sus identificatedores(标题)
def read_文档(路径):
语料库=CrearCorpus(路径)
文件=[]
标题=[]
对于范围内的c(len(corpus)):
(doc,fn)=语料库[c]
标题。附加(fn)
文件。附加(doc)
返回((文件、标题))
#Elimina puntuación de los documentos
def RemovePuntuation(文档):
translator=str.maketrans(“”,,,标点符号)
对于范围内的i(len(文档)):
文件[i]=文件[i]。翻译(译者)
报税表(文件)
#西班牙文本的实现
def词干分析器(文本):
词干分析器=雪球词干分析器(“西班牙语”)
words\u stem=词干分析器.stem(文本)
返回(单词/词干)
#实现文字符号化和文字符号化
def标记化_和_系统(文本数据):
text=word\u标记化(textdata)
lista=[]
对于文本中的元素:
word=元素下限()
新潮=词干分析器(word)
lista.append(nuevo)
返回(lista)
#实现文本标记化
仅def标记化(文本):
tokens=[word.lower()表示nltk中的sent。sent\u表示nltk.word中的word的tokenize(text)]
过滤的令牌=令牌
返回已过滤的\u令牌
#文档语料库的一部分
#这是一张表格(框架),代表了卡达文件的“词汇”
词汇定义(文档):
#crear dos listas、una lematizada和otra con代币
totalvocab_词干=[]
totalvocab_标记化=[]
对于文件中的i:
allwords_词干=标记化_和_词干(i)
totalvocab_词干扩展(所有单词_词干扩展)
allwords\u tokenized=仅tokenize\u(i)
totalvocab_标记化。扩展(所有单词标记化)
vocab_frame=pd.DataFrame({'words':totalvocab_标记化},index=totalvocab_词干)
返回(音频帧)
#Crea una矩阵tf x idf“标记化”和lematizados文本部分
def crear_matriz_tfidf():
tfidf_矢量化器=tfidf矢量化器(最大df=0.8,最大特征=200000,
最小值df=0.2,
使用(idf=True,tokenizer=tokenize)和(stem,ngram(range=(1,3))
tfidf_矩阵=tfidf_矢量器.拟合变换(文档)
terms=tfidf\u矢量器。获取\u功能\u名称()
返回((tfidf_矩阵,术语))
#Realisa聚类K-means de la matrix tf x idf(entrega los聚类)
def群集(tfidf_矩阵、num_群集):
km=KMeans(n_集群=num_集群)#Crea objeto de datos KMeans
km.fit(tfidf_矩阵)#实现K-平均值
集群=km.labels_uz.tolist()
返回((群集,公里))
#集群和对象(文献和宫殿)的总体结构
def集群_统计数据(集群、标题、公里数、tfidf_矩阵):
#阿布里莫斯阿尔奇沃酒店
df=pd.read_csv('./llamadas.csv',usecols=['Plataforma'],分隔符=';'))
电影={'title':标题,'documents':文档,'cluster':clusters}
frame=pd.DataFrame(电影,索引=[clusters],列=['title','cluster'])
帧['cluster']。值_counts()#每个簇的文档数
打印(“顶部终端端口群集:”)
打印()
#奥德纳星群中心,近心星群中心
order_centroids=km.cluster_centers_.argsort()[:,:-1]
#analizamos簇por簇
对于范围内的i(num_簇):
打印(“集群%d的Palabras:“%i,end=”)
对于按质心[i,:5]顺序排列的ind:#将6替换为每个簇n个字
打印(“%s”%vocab_frame.loc[terms[ind].split(“”)].values.tolist()[0][0]。编码('utf-8','ignore'),
结束=',')
打印()
打印()
#集群内总苞文档的可变参数
列表_行=[]
打印(“IDs de cluster%d:“%i,end=”)
对于frame.loc[i]['title'].values.tolist()中的标题: