使用svm判断人物关系是否为妻子

from sklearn.feature_extraction.text import TfidfVectorizer
import pandas as pd
import numpy as np
from sklearn.decomposition import TruncatedSVD
df_train = pd.read_table("train_fc.txt", names=['q1', 'q2', 'q3', 'q4','label','q5']).fillna("0")
df_test = pd.read_table("test_fc.txt", names=['q1', 'q2', 'q3', 'q4','label','q5']).fillna("0")
df_train['text'] = df_train['q1'] + " " + df_train['q2'] + " " + df_train['q3'] + " " + df_train['q5']
df_test['text'] = df_test['q1'] + " " + df_test['q2'] + " " + df_test['q3'] + " " + df_test['q5']
tfidf_train = TfidfVectorizer()
tfidf_test = TfidfVectorizer()
tfidf_feature_train = tfidf_train.fit_transform(df_train['text'])
tfidf_feature_test = tfidf_test.fit_transform(df_test['text'])
svd_feature_train = TruncatedSVD(n_components=100).fit_transform(tfidf_feature_train)
svd_feature_test = TruncatedSVD(n_components=100).fit_transform(tfidf_feature_test)
svd_feature_train.shape
svd_feature_test.shape

tfidf_train.get_feature_names()
# tfidf_test.get_feature_names()

from sklearn.svm import SVC

df_train['label']
clf = SVC(kernel='linear')  # default with 'rbf'
clf.fit(svd_feature_train,np.array(df_train['label']))
predicted = clf.predict(svd_feature_test)
predicted.shape
df_sj = pd.read_table("task1.testSentence.new", names=['q1', 'q2', 'q3', 'q4','label','q5','q6','q7','q8','q9']).fillna("0")
sj = []
# df_sj = df_sj[df_sj.q1.isin(['妻子'])]
sj = df_sj['label']
sj.shape
from sklearn import metrics
def metrics_result(actual, predict):
    print('精度:{0:.3f}'.format(metrics.precision_score(actual, predict,average='weighted')))
    print('召回:{0:0.3f}'.format(metrics.recall_score(actual, predict,average='weighted')))
    print('f1-score:{0:.3f}'.format(metrics.f1_score(actual, predict,average='weighted')))
metrics_result(sj, predicted)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值