当前位置:   article > 正文

gensim中corpus的列表化还原|大型嵌套列表字符串转为原列表_corpus.txt

corpus.txt

gensim中corpus的格式是:

  1. corpus = "[[(文本1第1个词的id),(文本1第1个词的tf),(文本1第2个词的id),(文本1第2个词的tf),……,(文本1第n个词的id),(文本1第n个词的tf)],
  2. [(文本2第1个词的id),(文本2第1个词的tf),(文本2第2个词的id),(文本2第2个词的tf),……,(文本2第n个词的id),(文本2第n个词的tf)]……,]]"

可以看出,最内层是(id,tf)的元组,外层是一个文本中所有词语的元组数据的列表,最外层是所有文本。

如果corpus占用内存较小,可以直接使用eval()将字符串列表还原为列表格式。

但如果corpus占用内存很大(比如我导出的corpus有600兆,16G的电脑甚至64G电脑都完全搞不定),就需要用到以下的遍历循环还原:

  1. with open(r"corpus.txt", 'r', encoding='utf-8')as f:
  2. content = f1.read()
  3. list1 = content.split('], [')
  4. content_list = []
  5. for each in list1:
  6. each = each.replace('[[', '').replace(']]', '')
  7. # print(each)
  8. each_list = each.split('), (')
  9. each_list1 = []
  10. for item in each_list:
  11. # print(item)
  12. item = item.replace('(', '').replace(')', '').replace(' ','')
  13. item = eval(item) # (1, 2)
  14. # print(item)
  15. each_list1.append(item) # [(), (), ……, ()]
  16. # print(each_list1)
  17. content_list.append(each_list1)
  18. print(list)

这样就能实现大样本的列表还原啦!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/357858
推荐阅读
相关标签
  

闽ICP备14008679号