首页 > 解决方案 > 如何将三个句子的列表制作成一个字符串?

问题描述

我有一个目标词和左右上下文,我必须将它们连接在一起。我正在使用 pandas,我尝试将句子和目标词加入到一个列表中,然后我可以将其转换为一个字符串,以便它可以与我的矢量化器一起使用。基本上我只是想把三个句子的列表变成一个字符串。

这是我得到的错误:

AttributeError                            Traceback (most recent call last)
<ipython-input-195-ae09731d3572> in <module>()
      3 
      4 vectorizer=CountVectorizer(max_features=100000,binary=True,ngram_range=(1,2))
----> 5 feature_matrix=vectorizer.fit_transform(trainTexts)
      6 print("shape=",feature_matrix.shape)

3 frames
/usr/local/lib/python3.6/dist-packages/sklearn/feature_extraction/text.py in _preprocess(doc, accent_function, lower)
     66     """
     67     if lower:
---> 68         doc = doc.lower()
     69     if accent_function is not None:
     70         doc = accent_function(doc)

AttributeError: 'list' object has no attribute 'lower'

我试过使用.join.split但它们不适合我,所以我做错了。

import sys
import csv
import random

csv.field_size_limit(sys.maxsize)

trainLabels = []
trainTexts = []

with open ("myTsvFile.tsv") as train:
  trainData = [row for row in csv.reader(train, delimiter='\t')]
  random.shuffle(trainData)
for example in trainData:
  trainLabels.append(example[1])
  trainTexts.append(example[3:6])

索引example[3:6]意味着 3 是左上下文 4 是目标词和 5 右上下文。

print('Text:', trainTexts[3])
print('Label:', trainLabels[1])

编辑了代码中的几行打印:

['Visa electron käy aika monessa paikassa luottokortista . Mukaanlukien ', 'Paypal', ' , mikä avaa taas lisää ovia .']

['Nyt pistän pääni pölkyllä : ', 'WinForms', ' on ihan ok .']

标签: stringlistnlpsvm

解决方案


推荐阅读