问题/我尝试了什么
我下载了我试图运行的textmining 1.0
库,但这给了我一些导入错误(因为这是一个python 2 lib)所以我搜索了stackoverflow并发现我必须使用{{1现在一切正常。但是,当我这样做时:
2to3.py
(document_list只是def buildMatrix(self,document_list):
print("building matrix...")
tdm = textmining.TermDocumentMatrix()
for doc in document_list:
tdm.add_doc(doc)
tdm.write_csv(r'path\matrix.csv', cutoff=2)
的列表)
我收到以下错误:
strings
在检查 File "C:\Users\RICK\Anaconda\lib\site-packages\textmining\__init__.py", line 335, in write_csv
f.writerow(row)
TypeError: a bytes-like object is required, not 'str'
的代码时,我非常确定该行应该是string
。所以我想通过编辑源代码来打印这一行:
textmining 1.0
但即使是现在,我也会得到相同的f = csv.writer(open(filename, 'wb'))
for row in self.rows(cutoff=cutoff):
print(row)
f.writerow(row)
:
TypeError
我搜索堆栈溢出来解决这个问题,将 File "C:\Users\RICK\Anaconda\lib\site-packages\textmining\__init__.py", line 335, in write_csv
print(row)
TypeError: a bytes-like object is required, not 'str'
替换为'wb'
,但这仍然给了我'w'
的问题
TypeError.
根据评论进行修改:
克劳迪奥的建议仍然给了我TypeError
:
TypeError
托尼的建议:
代码检查:
File "C:\Users\RICK\Anaconda\lib\site-packages\textmining\__init__.py", line 335, in write_csv
f.write(row)
TypeError: a bytes-like object is required, not 'str'
我现在拥有这些for article in articles:
abstract = searcher.getArticleAbstract(article)
print(type(abstract)) #--> returns <class 'str'>
all_abstracts.append(abstract)
txtSearcher.buildMatrix(all_abstracts)
行:
open
f = open(os.path.join(data_dir, 'stopwords.txt'),"r")
f = open(os.path.join(data_dir, 'dictionary.txt'),"r")
f = csv.writer(open(filename, 'w'))
def write_csv(self, filename, cutoff=2):
print("This really makes me sad!")
"""
Write term-document matrix to a CSV file.
filename is the name of the output file (e.g. 'mymatrix.csv').
cutoff is an integer that specifies only words which appear in
'cutoff' or more documents should be written out as columns in
the matrix.
"""
print(self.rows)
f = csv.writer(open(filename, 'w'))
for row in self.rows(cutoff=cutoff):
f.writerow(row)
答案 0 :(得分:0)
据我所知,问题的实际原因描述了程序的奇怪行为是我在评论中提出的问题:
<强> Are you sure that you are getting the error from the code you are editing?
强>
不被认为是相关的,也是解释所有观察到的问题的唯一正确答案。
所有其他检测到的问题,例如
**RENAME** def write_csv(...) to for example def my_write_csv(...)
包括提供的解释和提示,如:
如果您定义一个与库中的函数同名的自己的函数,则会遇到本地/全局范围的问题,并且很难知道实际执行了哪一个?这个来自库或你已经定义的那个...你没有打印出来的print("This really makes me sad!")
这个事实表明这个函数没有被执行但是库却没有...
检查整个代码,包括要读取的文件或能够重现错误的摘录 - 对这种奇怪的行为有一个非常简单的解释。
在指示错误的行之前的代码中查找未关闭的括号或字符串引号或列表]
等。
在这种情况下无法取得成功......
答案 1 :(得分:0)