深度学习二进制文本分类

数据挖掘 神经网络 分类 文本挖掘
2022-03-13 05:41:25

我希望为特定的新闻和博客文章建立一个模型,将时尚与生物学模式结合起来。我每天阅读 35 个网站(这很累人)。我想知道如何创建这样一个模型,以便我可以每天向它发送文章,它可以预测它们是否值得阅读(即相关与不相关)。例如,在一个完美的世界中,我向它发送了 230 篇文章,其中 12 篇是根据之前的训练和测试文章返回的相关文章。假设所有 12 个都是相关的,我将它们保存到培训目录并重新编译以加强模型。

在阅读了使用 Keras进行深度学习之后,我希望第 5 章和第 6 章关于词嵌入和 RNN(简单、LSTM、GRU)能够指出如何开发这样的模型。我也在阅读如何为文本分类实现 CNN,但似乎无法构建一个基本的概念框架,如何从几篇文章开始并每天添加训练数据以加强模型。

这种策略有术语吗?它是否以某种形式在 Kaggle、Github 等上完成?

1个回答

在更广泛的意义上,您在这里所指的是文本挖掘这是根据某些标准从文本中提取信息以形成特定模式和含义等的地方。

您将如何实施这取决于您所考虑的标准。

例如,假设您有一篇文本格式的博客文章(在本例中我们称之为 filepath.txt)。

您决定要将单词分类为特定类别。例如,您可以将关键字hotelflightcountries分类为travel,即这三个词的每个出现都将被替换为数据。假设数据是相关的兴趣类别。任何属于旅行类别的文章都将包含在您感兴趣的文章中。

然后,您可以使用 Python 扫描文件并使用 filedata.replace 将关键字替换为类别:

# Read file
with open('filepath.txt', 'r') as file :
filedata = file.read()

# Replace keyword
filedata = filedata.replace('How ', ' ')
filedata = filedata.replace('Why ', ' ')
filedata = filedata.replace('of ', ' ')
filedata = filedata.replace('to ', ' ')
filedata = filedata.replace('you ', ' ')
filedata = filedata.replace('all ', ' ')
filedata = filedata.replace('and ', ' ')
filedata = filedata.replace('be ', ' ')
filedata = filedata.replace(' a ', ' ')
filedata = filedata.replace(' for ', ' ')
filedata = filedata.replace(' in ', ' ')
filedata = filedata.replace(' is ', ' ')
filedata = filedata.replace(' the ', ' ')
filedata = filedata.replace(' about ', ' ')
filedata = filedata.replace(' an ', ' ')
filedata = filedata.replace('Data', ' data ')
filedata = filedata.replace('Python', ' data ')
filedata = filedata.replace('R', ' data ')
filedata = filedata.replace('machine', ' data ')
filedata = filedata.replace('Linux', ' data ')
filedata = filedata.replace('technology', ' data ')
filedata = filedata.replace('flights', 'travel')
filedata = filedata.replace('countries', 'travel')
filedata = filedata.replace('hotel', 'travel')
filedata = filedata.replace('analytics', 'data')
filedata=  filedata.replace('CNN', 'news')
filedata=  filedata.replace('weather', 'news')
filedata=  filedata.replace('Trump', 'news')
filedata=  filedata.replace('market', 'business')
filedata=  filedata.replace('entrepreneur', 'business')
filedata=  filedata.replace('financial', 'business')

# Write to file
with open('filepath2.txt', 'w') as file:
file.write(filedata)

然后,您可以在 R 中使用诸如stringr之类的库来查看类别(将关键字替换为类别)出现的频率:

require(stringr)
WordList <- str_split(readLines("filepath2.txt"), pattern = " ")
searchqueries<-sort(table(WordList),decreasing=TRUE)[1:100]
searchqueries

例如,如果该类别出现 X 次或更多次,则该文章被视为相关。

这只是如何使用文本挖掘的一个示例。同样,这在很大程度上取决于您的具体标准以及您将如何确定相关性。但这是你可以接近它的一种方式。