例如,我试图将有关编程的字符串与有关编程的其他字符串、有关物理的字符串与有关物理的其他字符串等进行分组,以涵盖广泛的主题。尽管问题的理论语言方面很明显,但我希望使用编程/软件实际做到这一点。
概要:给定大量字符串,我将如何按语义主题对它们进行分组?
特定应用:我有大约 20 万个琐事问题,我想将它们分类为常见的分组(汽车、计算机、政治、加拿大、食品、巴拉克奥巴马等)。
我研究过的内容:维基百科有一个自然语言处理工具包列表(假设我正在尝试做的实际上称为 NLP),所以我查看了一些,但似乎没有一个能满足我的需求。
注意:有人指出,这样做需要额外的知识(例如,保时捷是汽车,C++ 是一种编程语言)。我假设需要训练数据,但如果我只有问题和答案列表,我该如何生成训练数据?然后我如何使用训练数据?
更多注释:如果我的问答的当前格式有帮助(虽然它看起来像 JSON,但它基本上是一个原始文本文件):
// row 1: is metadata
// row 2: is a very specific kind of "category"
// row 3: is the question
// row 4: is the answer
{
15343
A MUSICAL PASTICHE
Of classical music's "three B's", he was the one born in Hamburg in 1833
Johannes Brahms
}
但在有人指出已经存在一个类别之前,请注意有大约 20 万个这样的问题和答案,并且基本上有很多“类别”。我正在尝试将这些分组到更广泛的组中,例如上面列出的组。此外,可以很容易地为所有问题更改此格式,我以编程方式进行。
还有更多注意事项:我实际上不知道我需要多少个类别(至少 10-20 个),因为我自己还没有通读所有问题。我部分期望在分类过程中以某种方式确定有限数量。无论如何,我总是可以手动创建多个类别。