Senta
Senta copied to clipboard
例子中的aspect_sentiment是否有误?
开源先点个赞 但是例子中的aspect_sentiment是不是有误
In [8]: my_senta.init_model(model_class="ernie_1.0_skep_large_ch", task="aspect_
...: sentiment_classify", use_cuda=use_cuda)
...: texts = ["百度是一家高科技公司"]
...: aspects = ["高科技"]
...: result = my_senta.predict(texts, aspects)
...: print(result)
[('百度是一家高科技公司', 'negative')]
看了源码调用Senta.predict, 其中好像并没有在预测用到aspects
def predict(self, texts_, aspects=None):
"""
the sentiment classifier's function
:param texts: a unicode string or a list of unicode strings.
:return: sentiment prediction results.
"""
if isinstance(texts_, text_type):
texts_ = [texts_]
if isinstance(aspects, text_type):
aspects = [aspects]
return_list = convert_texts_to_ids(texts_, self.tokenizer, self.max_seq_len, \
self.truncation_type, self.padding_id)
record_dict = structure_fields_dict(return_list, 0, need_emb=False)
input_list = []
for item in self.input_keys:
kv = item.split("#")
name = kv[0]
key = kv[1]
input_item = record_dict[InstanceName.RECORD_ID][key]
input_list.append(input_item)
inputs = [array2tensor(ndarray) for ndarray in input_list]
result = self.inference.run(inputs)
batch_result = self.model_class.parse_predict_result(result)
results = []
if self.inference_type == 'seq_lab':
for text, probs in zip(texts_, batch_result):
label = [self.label_map[l] for l in probs]
results.append((text, label))
else:
for text, probs in zip(texts_, batch_result):
label = self.label_map[np.argmax(probs)]
results.append((text, label))
return results
没搞懂 aspect_sentiment_classify 与 sentiment_classify 任务有什么区别。同求解答
@xfcygaocan 同问,这里的源码predict函数, 并没有在预测时候用到aspects
首先开源太棒了,点赞点赞 同样,尝试了一个例子之后,效果不太理想
my_senta.init_model(model_class="ernie_1.0_skep_large_ch", task="aspect_sentiment_classify", use_cuda=use_cuda) texts = ["这家的饭不好吃,但是水好喝"] aspects = ["饭"] result = my_senta.predict(texts, aspects) print(result) [('这家的饭不好吃,但是水好喝', 'positive')]
想着只是初始化的模型,后续还需要我们再次训练吧~~