AI/NLP方面,如何做一个软件根据一个component输出所有跟这个component可能的requirements

各位专家好,我现在的实习项目是关于nlp的,但我还是本科,而且学校的课程完全没涉及这一块,所以我现在有点头大。我的项目要求是输入一个component,输出所有跟这个component可能相关的requirements(我感觉跟推荐系统有相似之处),我已经完成数据特征提取,component一个csv(特征只有一个是name),requirement一个csv(特征也只有一个description)。我目前用了一个简单的算法就是余弦相似度➕TFIDF 但是精度太低了。比如有个component叫Lower Platform,但是 在requirement里面,如果有lower than的出现也会被作为可能结果输出出来,所以很头痛下一步该怎么办(我目前用NER‘暂时’解决了这个问题)。希望专家们可以给我指点迷津 非常感谢了!还有一个问题就是,现在输出的结果要么太泛泛要么不全,原因是现在的输出结果完全取决于这个component是否在requirement出现过,希望可以指导一下我谢谢!

谢谢各位的回复,但是暂时不采纳chatgpt的回答,因为我已经用过作为题解思路了。

引用chatGPT作答,要改进您的算法以提高准确性,您可以尝试以下几种方法:

1.使用更高级的模型:您可以使用预训练的深度学习模型,例如BERT或GPT,这些模型在自然语言处理(NLP)任务中表现出色。您可以使用这些模型来训练一个分类器,将组件映射到相关的要求。

2.使用其他特征:您可以尝试添加其他特征,例如组件的属性或标签。这些特征可以帮助您更好地了解组件的上下文,从而更好地推断相关要求。

3.使用其他相似性指标:您可以尝试使用其他相似性指标,例如Jaccard相似性或编辑距离。这些指标可以帮助您更好地处理模糊或模棱两可的要求。

4.增加数据量:您可以尝试添加更多的组件和要求数据,以便算法能够更好地了解组件和要求之间的关系。

5.人工智能辅助:您可以尝试使用人工智能辅助,例如Crowdsourcing或标注工具,以帮助您更好地理解组件和要求之间的关系。这可以提高准确性,并帮助您更快地建立高质量的数据集。

如果您的算法的输出结果过于泛泛或不全,可能是因为您的算法只依赖于组件是否在需求文本中出现过,而没有考虑文本之间的上下文和语义相关性。这种情况下,您可以考虑以下几点:

1.使用上下文信息:您可以尝试捕捉需求文本中的上下文信息。例如,如果一个需求文本中提到了两个组件,您可以考虑它们之间的关系和上下文,以及如何影响它们与其他组件的相关性。

2.使用语义相关性:您可以尝试使用语义相似性来计算组件和需求文本之间的相关性。例如,使用词向量或嵌入技术,将组件和需求文本映射到向量空间中,并使用余弦相似度或其他相似度度量来计算它们之间的相关性。

3.使用知识图谱:您可以尝试将组件和需求文本映射到知识图谱中,并使用图上的路径和相关性度量来计算它们之间的相关性。这可以帮助您更好地捕捉组件之间的关系和上下文。

4.使用机器学习算法:您可以尝试使用监督或无监督的机器学习算法,例如聚类、分类、回归等,来捕捉组件和需求文本之间的相关性。这可以帮助您更好地理解组件之间的关系和上下文。

希望这些建议能够帮助您提高算法的准确性。