使用受控制的词汇表和python对句子进行分类

时间:2018-11-04 20:12:25

标签: python

我有几种不同的医学词汇(例如药物,症状,体征,疾病)以及一些自由文本诊断报告。我想使用tfidf或机器学习技术来首先分解自由文本,然后将重要的句子分类为不同的类别。 Python作为一种编程语言 例如,“需要服用阿司匹林的患者”被分类为“药物使用”,而在药物词汇中可以找到“阿司匹林”。 您能为我推荐一些算法吗?谢谢:)

1 个答案:

答案 0 :(得分:0)

  

我建议您使用CountVectorizer,因为您已经有了关键字列表。   在CountVectorizer中,有一个参数可以设置Vocabulary。您可以坚持将关键词列为词汇。因此,CountVectorizer要做的是检查文档中的那些关键字,并根据这些关键字构建特征向量。让我们来看一个例子

from sklearn.feature_extraction.text import CountVectorizer
keywords=["aspirin","medication","patients"]
sen1="patients need to take aspirin"
sen2 = "medication required immediately"
vectorizer = CountVectorizer(vocabulary=keywords) 
corpus=[sen1,sen2]
X = vectorizer.transform(corpus)
  

此后,当您打印矢量化器的功能名称时:-       print(vectorizer.get_feature_names())   您将看到['aspirin', 'medication', 'patients']

     

当您通过print(X.toarray())看到每个句子的向量时,您将看到以下矩阵:-[[1 0 1][0 1 0]]因此,它基于向量的存在(1)和不存在(0)构建了一个向量关键字