![](/img/trans.png)
[英]Issue with findall over a string (expected string or byte-like object)
[英]expected string or byte-like object NLTK Mysql
您能帮我解决这个错误吗?
def get_db():
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="",
database="cosmos"
)
mycursor = mydb.cursor()
sql_select="SELECT article FROM crawling_sm"
mycursor.execute(sql_select)
data=mycursor.fetchall()
for z in range(len(data)):
text_sents=sent_tokenize(data[z])
def process_text(text_article):
text_sents=text_article
text_sents_clean = [remove_string_special_characters(s) for s in text_sents] #if s.istitle() == False]
doc_info = get_doc(text_sents_clean)
#freqDict_list = create_freq_dict(text_sents_clean)
#TF_scores = computeTF(doc_info, freqDict_list)
print(text_sents)
get_db()
错误消息是我从数据库中选择的文章无法拆分为某些文本,我尝试使用send_tokenize,但是存在一些错误消息,期望该字符串或类似字节的对象
错误消息:
_slices_from_text中的文件“ C:\\ Users \\ HP Laptop \\ Anaconda3 \\ lib \\ site-packages \\ nltk \\ tokenize \\ punkt.py”,行1295,用于匹配self._lang_vars.period_context_re()。finditer(text):
TypeError:预期的字符串或类似字节的对象
问题是
data = mycursor.fetchall()
返回元组列表,即使查询返回的是单列。
因此,与其返回类似
['a', 'b', 'c', 'd', 'e', 'f']
它返回
[('a',), ('b',), ('c',), ('d',), ('e',), ('f',)]
解决方案是将每个元组的第一个元素传递给sent_tokenize
函数。
for row in data:
text_sents = sent_tokenize(row[0])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.