SciKit网站提供this k-means demo,我想尽可能多地使用它来集中我自己的一些文档,因为我是机器学习和SciKit的新手。问题是让我的文档以适合他们演示的形式出现。
以下是SciKit示例中的“问题区域”:
dataset = fetch_20newsgroups(subset='all', categories=categories, shuffle=True, random_state=42)
labels = dataset.target
true_k = np.unique(labels).shape[0]
可以看出,在这个例子中,作者使用/“获取”一个名为“20newsgroups”的数据集,对其进行调用(根据this page;参见7.7的第二段)“返回一个可以提供给文本特征提取器的原始文本文件列表。“我不依赖于“文本文件”列表 - 可以在下面的代码中看到 - 但我可以将我的“文档”放在任何必要的形式中。
有人可以解释我如何使用SciKit示例而不必将我的“文档”放在文本文件中吗?或者,标准做法是仅从文本文件而不是文档所在的数据库中聚类文档?从示例/文档中可以清楚地看出示例中的内容是完全多余的,使用b / c它使作者的生活更轻松,而不是。或者至少我不清楚。感谢您的帮助 - 特别感谢SciKit的家伙(他们正在做上帝的工作!)。
if cursor.rowcount > 0: #don't bother doing anything if we don't get anything from the database
data = cursor.fetchall()
for row in data:
temp_string = row[0]+" "+row[1]+" "+row[3]+" "+row[4] # currently skipping the event_url: row[2]
page = BeautifulSoup((''.join(temp_string)))
pagetwo = str(page)
clean_text = nltk.clean_html(pagetwo)
tokens = nltk.word_tokenize(clean_text)
fin_doc = "" + "\n"
for word in tokens:
fin_word = stemmer.stem(word).lower()
if fin_word not in stopwords and len(fin_word) > 2:
fin_doc += fin_word + " "
documents.append(fin_doc)
答案 0 :(得分:3)
文档只是一个字符串列表,每个文档都有一个字符串,即iirc。
文档在这一点上有点不清楚。 fetch_20newsgroups
将数据集作为文件下载,但代码中的表示形式是文件的内容,而不是文件本身。