目前我正在使用基于 WordNet 的语义相似度测量项目。正如我所知道的,以下是计算两个句子之间语义相似度的步骤:
- 每个句子都被划分为一个标记列表。
- 词干。
- 词性消歧(或标记)。
- 为句子中的每个单词找到最合适的含义(词义消歧)。
- 根据词对的相似度计算句子的相似度。
现在我在第 3 步。但我无法得到正确的输出。我对 Python 不是很熟悉。所以我很感激你的帮助。
这是我的代码。
import nltk
from nltk.corpus import stopwords
def get_tokens():
test_sentence = open("D:/test/resources/AnswerEvaluation/Sample.txt", "r")
try:
for item in test_sentence:
stop_words = set(stopwords.words('english'))
token_words = nltk.word_tokenize(item)
sentence_tokenization = [word for word in token_words if word not in stop_words]
print (sentence_tokenization)
return sentence_tokenization
except Exception as e:
print (str(e))
def get_stems():
tokenized_sentence = get_tokens()
for tokens in tokenized_sentence:
sentence_stemming = nltk.PorterStemmer().stem(tokens)
print (sentence_stemming)
return sentence_stemming
def get_tags():
stemmed_sentence = get_stems()
tag_words = nltk.pos_tag(stemmed_sentence)
print (tag_words)
return tag_words
get_tags()
Sample.txt 包含句子,我正在乘车。我正坐在车里。