python报错TypeError: must be str, not list

今天LDA话题聚类时,总是不能写入聚类结果,报错在下面绿色的这一行,TypeError: must be str, not list 

我试着像别人说的那样改open函数,还是报错,最后大神给出的方案成功跑通了

 

import re
import logging   # logbook
from gensim import corpora, models, similarities
import os
from pyltp import Segmentor, Postagger, Parser, NamedEntityRecognizer
import numpy as np
import time
from tqdm import tqdm

import sys, os
LTP_DATA_DIR = 'D:/LTP/ltp_data'  # ltp模型目录的路径
cws_model_path = os.path.join(LTP_DATA_DIR, 'cws.model')  # 分词模型路径,模型名称为`cws.model`
pos_model_path = os.path.join(LTP_DATA_DIR, 'pos.model')  # 词性标注模型路径,模型名称为`pos.model`
print("加载LTP模型... ...")

segmentor = Segmentor()  # 初始化实例
segmentor.load(cws_model_path)  # 加载模型

def load_lda(corpus,lda):
    # 主题推断
    for e, values in enumerate(lda.inference(corpus)[0]):
        print(texts[e])
        idx , val = 0, 0
        for ee, value in enumerate(values):
            print('\t主题%d推断值%.2f' % (ee, value))
            val = value if value >= val else val
            idx = ee if value >= val else idx
        print('\t主题%d推断值%.2f' % (idx, val))
        lei_f = open('lei_text'+ str(idx) +'.txt','a',encoding='utf-8')
   '''  lei_f.write(str(e)+'\t'+ str(idx)+'\t' + texts[e]) # 出错前的这一行'''  
        lei_f.write(str(e)+'\t'+ str(idx)+'\t' + '\t'.join(texts[e]))
        lei_f.write('\n')

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值