金融市场中的NLP——情感分析( 二 )
## 输入文本示例positive "Finnish steel maker Rautaruukki Oyj ( Ruukki ) said on July 7 , 2008 that it won a 9.0 mln euro ( $ 14.1 mln ) contract to supply and install steel superstructures for Partihallsforbindelsen bridge project in Gothenburg , western Sweden."neutral "In 2008 , the steel industry accounted for 64 percent of the cargo volumes transported , whereas the energy industry accounted for 28 percent and other industries for 8 percent."negative "The period-end cash and cash equivalents totaled EUR6 .5 m , compared to EUR10 .5 m in the previous year."
文章插图
请注意 , 所有数据都属于来源 , 用户必须遵守其版权和许可条款 。
模型下面是我比较了四款模型的性能 。
文章插图
A、 基于词汇的方法创建特定于领域的词典是一种传统的方法 , 在某些情况下 , 如果源代码来自特定的个人或媒体 , 则这种方法简单而强大 。 Loughran和McDonald情感词列表 。 这个列表包含超过4k个单词 , 这些单词出现在带有情绪标签的财务报表上 。 注:此数据需要许可证才能用于商业应用 。 请在使用前检查他们的网站 。
## 样本negative: ABANDONnegative: ABANDONEDconstraining: STRICTLY
我用了2355个消极单词和354个积极单词 。 它包含单词形式 , 因此不要对输入执行词干分析和词干化 。 对于这种方法 , 考虑否定形式是很重要的 。 比如not , no , don , 等等 。 这些词会把否定词的意思改为肯定的 , 如果前面三个词中有否定词 , 这里我简单地把否定词的意思转换成肯定词 。
然后 , 情感得分定义如下 。
tone_score = 100 * (pos_count — neg_count) / word_count
用默认参数训练14个不同的分类器 , 然后用网格搜索交叉验证法对随机森林进行超参数整定 。
classifiers = []classifiers.append(("SVC", SVC(random_state=random_state)))classifiers.append(("DecisionTree", DecisionTreeClassifier(random_state=random_state)))classifiers.append(("AdaBoost", AdaBoostClassifier(DecisionTreeClassifier(random_state=random_state),random_state=random_state,learning_rate=0.1)))classifiers.append(("RandomForest", RandomForestClassifier(random_state=random_state, n_estimators=100)))classifiers.append(("ExtraTrees", ExtraTreesClassifier(random_state=random_state)))classifiers.append(("GradientBoosting", GradientBoostingClassifier(random_state=random_state)))classifiers.append(("MultipleLayerPerceptron", MLPClassifier(random_state=random_state)))classifiers.append(("KNeighboors", KNeighborsClassifier(n_neighbors=3)))classifiers.append(("LogisticRegression", LogisticRegression(random_state = random_state)))classifiers.append(("LinearDiscriminantAnalysis", LinearDiscriminantAnalysis()))classifiers.append(("GaussianNB", GaussianNB()))classifiers.append(("Perceptron", Perceptron()))classifiers.append(("LinearSVC", LinearSVC()))classifiers.append(("SGD", SGDClassifier()))cv_results = []for classifier in classifiers :cv_results.append(cross_validate(classifier[1], X_train, y=Y_train, scoring=scoring, cv=kfold, n_jobs=-1))
# 使用随机森林分类器rf_clf = RandomForestClassifier()# 执行网格搜索param_grid = {'n_estimators': np.linspace(1, 60, 10, dtype=int),'min_samples_split': [1, 3, 5, 10],'min_samples_leaf': [1, 2, 3, 5],'max_features': [1, 2, 3],'max_depth': [None],'criterion': ['gini'],'bootstrap': [False]}model = GridSearchCV(rf_clf, param_grid=param_grid, cv=kfold, scoring=scoring, verbose=verbose, refit=refit, n_jobs=-1, return_train_score=True)model.fit(X_train, Y_train)rf_best = model.best_estimator_
推荐阅读
- 柔性电子市场广阔,领头羊柔宇科技获更多关注
- Eyeware Beam使用iPhone追踪玩家在游戏中的眼睛运动
- 又爆炸!联电科技传来一声巨响,或把8 英寸晶圆市场"炸"了
- 线下市场彻底“乱了”!小米宣布新规!华为捆绑加价行为迎争议
- 腾讯游戏发起对华为的挑战,或因后者对国内手机市场的影响力大跌
- 华为P50 Pro渲染图曝光:曲面瀑布屏
- 苹果中国区下架近5万款游戏应用,手游市场面临大洗牌
- 转转:iPhone 12热销 二手市场5G手机交易看涨
- 市场|iPhoneX用户集中卖手机?转转Q4手机行情:iPhone12引领5G换机潮
- OPPO西欧出货量去年增长三倍 高端市场成头部厂商必争之地