【Datawhale 科大訊飛-基于論文摘要的文本分類與關鍵詞抽取挑戰賽】機器學習方法baseline

內容

科大訊飛AI開發者大賽NLP賽道題目:
基于論文摘要的文本分類與關鍵詞抽取挑戰賽

任務:
1.機器通過對論文摘要等信息的理解,判斷該論文是否屬于醫學領域的文獻。
2.提取出該論文關鍵詞。

數據集的獲取

訓練集:
這里讀取title、abstract、author、keywords拼接在一起作為text,也就是輸入數據。
在這里插入圖片描述

# 導入pandas用于讀取表格數據
import pandas as pd# 導入BOW(詞袋模型),可以選擇將CountVectorizer替換為TfidfVectorizer(TF-IDF(詞頻-逆文檔頻率)),注意上下文要同時修改,親測后者效果更佳
from sklearn.feature_extraction.text import CountVectorizer# 導入LogisticRegression回歸模型
from sklearn.linear_model import LogisticRegression# 過濾警告消息
from warnings import simplefilter
from sklearn.exceptions import ConvergenceWarning
simplefilter("ignore", category=ConvergenceWarning)# 讀取數據集
train = pd.read_csv('/home/aistudio/data/data231041/train.csv')
train['title'] = train['title'].fillna('')
train['abstract'] = train['abstract'].fillna('')test = pd.read_csv('/home/aistudio/data/data231041/testB.csv')
test['title'] = test['title'].fillna('')
test['abstract'] = test['abstract'].fillna('')# 提取文本特征,生成訓練集與測試集
train['text'] = train['title'].fillna('') + ' ' +  train['author'].fillna('') + ' ' + train['abstract'].fillna('')+ ' ' + train['Keywords'].fillna('')
test['text'] = test['title'].fillna('') + ' ' +  test['author'].fillna('') + ' ' + test['abstract'].fillna('')

特征工程

這里將對應的文本token轉化為vector,方便后面進行計算,這里的CountVectorizer()使用的是BOW模型,所以編碼后的維度應該是詞表的大小。

vector = CountVectorizer().fit(train['text'])
train_vector = vector.transform(train['text'])
test_vector = vector.transform(test['text'])

其中,train[‘text’]的shape是[6000,]
在這里插入圖片描述
所以對應的train_vector的shape就是(6000, 67855)
在這里插入圖片描述
test_vector是(2000, 67855)

訓練

這里使用的是邏輯回歸的方法。本質上是在線性層上堆疊了一個非線性layer,sigmoid將最終結果scale到0-1之間,方便我們進行二分類任務。

# 引入模型
model = LogisticRegression()# 開始訓練,這里可以考慮修改默認的batch_size與epoch來取得更好的效果
model.fit(train_vector, train['label'])

驗證

用測試集進行驗證。

# 利用模型對測試集label標簽進行預測
test['label'] = model.predict(test_vector)
test['Keywords'] = test['title'].fillna('')
test[['uuid','Keywords','label']].to_csv('submit_task1.csv', index=None)

提交結果,分數如下。
在這里插入圖片描述

改進

當然這還沒完,之前的CountVectorizer()是基于BOW模型的。我們也可以基于 TF-IDF 進行提取。

TF 指 term frequence,即詞頻,指某個詞在文章中出現次數與文章總次數的比值;

IDF 指 inverse document frequence,即逆文檔頻率,指包含某個詞的文檔數占語料庫總文檔數的比例

每個詞最終的 IF-IDF 即為 TF 值乘以 IDF 值。計算出每個詞的 TF-IDF 值后,使用 TF-IDF 計算得到的數值向量替代原文本即可實現基于 TF-IDF 的文本特征提取。

from sklearn.feature_extraction.text import TfidfVectorizer
vector = TfidfVectorizer().fit(train["text"])
# vector = CountVectorizer().fit(train['text'])
train_vector = vector.transform(train['text'])
test_vector = vector.transform(test['text'])

結果也會有顯而易見的提高。
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/43417.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/43417.shtml
英文地址,請注明出處:http://en.pswp.cn/news/43417.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【基礎】Android Handler

一、博客參考 Handler機制詳解【重點】:https://www.jianshu.com/p/b4d745c7ff7a Handler Thread工作線程操作UI范例【重點】:https://www.cnblogs.com/net168/p/4075126.html 二、內存泄漏的解決:靜態內部類弱引用 關于 Handler&#xf…

vue+flask基于知識圖譜的抑郁癥問答系統

vueflask基于知識圖譜的抑郁癥問答系統 抑郁癥已經成為當今社會刻不容緩需要解決的問題,抑郁癥的危害主要有以下幾種:1.可導致病人情緒低落:抑郁癥的病人長期處于悲觀的狀態中,感覺不到快樂,總是高興不起來。2.可導致工…

智慧工地平臺工地人員管理系統 可視化大數據智能云平臺源碼

智慧工地概述: 智慧工地管理平臺是以物聯網、移動互聯網技術為基礎,充分應用大數據、人工智能、移動通訊、云計算等信息技術,利用前端信息采通過人機交互、感知、決策、執行和反饋等,實現對工程項目內人員、車輛、安全、設備、材…

elaticsearch(3)

整合springboot 1.整合依賴 注意依賴版本和安裝的版本一致 <properties> <java.version>1.8</java.version> <!-- 統一版本 --> <elasticsearch.version>7.6.1</elasticsearch.version> </properties> 導入elastics…

數據結構算法--1 順序查找二分查找

順序查找時間復雜度為O(n) 我們可以借助Python中的函數enumerate,通過enumerate遍歷列表返回其索引和值 def linnear_search(li, val):for ind, v in enumerate(li):if v val:return indelse:return None 也可以通過列表長度依次遍歷: def linear_search(li, val): # …

瀏覽器渲染原理 - 輸入url 回車后發生了什么

目錄 渲染時間點渲染流水線1&#xff0c;解析&#xff08;parse&#xff09;HTML1.1&#xff0c;DOM樹1.2&#xff0c;CSSOM樹1.3&#xff0c;解析時遇到 css 是怎么做的1.4&#xff0c;解析時遇到 js 是怎么做的 2&#xff0c;樣式計算 Recalculate style3&#xff0c;布局 la…

創建react native項目的筆記

創建react native項目的筆記 重新下載 ruby安裝 watchman安裝 cocoapods安裝 react native 項目創建好項目后安裝 ios 依賴清除設備緩存安裝 android 依賴鏈接 網易 mumu 模擬器安裝路由 Navigation頁面之間的跳轉邏輯自定義頭部樣式判斷不同設備平臺代碼示例安裝 Axios安裝本地…

java mysql druid mybatis-plus里使用多表刪除出錯的一種處理方式

今天在出來多表刪除的時候在mapper.xml用了下面的多個delete語句 <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"…

Spring Cloud 系列之OpenFeign:(7)鏈路追蹤zipkin

傳送門 Spring Cloud Alibaba系列之nacos&#xff1a;(1)安裝 Spring Cloud Alibaba系列之nacos&#xff1a;(2)單機模式支持mysql Spring Cloud Alibaba系列之nacos&#xff1a;(3)服務注冊發現 Spring Cloud 系列之OpenFeign&#xff1a;(4)集成OpenFeign Spring Cloud …

PHP酒店點菜管理系統mysql數據庫web結構apache計算機軟件工程網頁wamp

一、源碼特點 PHP 酒店點菜管理系統是一套完善的web設計系統&#xff0c;對理解php編程開發語言有幫助&#xff0c;系統具有完整的源代碼和數據庫&#xff0c;系統主要采用B/S模式開發。 代碼下載 https://download.csdn.net/download/qq_41221322/88232051 論文 https://…

前端技術Vue學習筆記--005

Vue學習筆記 一、非父子通信-event bus 事件總線 作用&#xff1a;非父子組件之間&#xff0c;進行簡易消息傳遞。&#xff08;復雜場景用----Vuex&#xff09; 使用步驟&#xff1a; 創建一個都能訪問的事件總線 &#xff08;空Vue實例&#xff09;-----utils/EventBus.js /…

兩個數組的交集-C語言/Java

描述 給定兩個數組 nums1 和 nums2 &#xff0c;返回 它們的交集 。輸出結果中的每個元素一定是 唯一 的。我們可以 不考慮輸出結果的順序。&#xff08;1 < nums1.length, nums2.length < 1000&#xff0c;0 < nums1[i], nums2[i] < 1000&#xff09; 示例1 輸入…

【golang】通道(channel)的基本原理(一)

通道類型的值本身就是并發安全的&#xff0c;這也是Go語言自帶的、唯一一個可以滿足并發安全性的類型。 聲明一個通道類型變量的時候&#xff0c;我們首先要確定該通道類型的元素類型&#xff0c;決定了我們可以通過這個通道傳遞什么類型的數據。 在初始化通道的時候&#xf…

一鍵批量修改文件夾名稱,中文瞬間變日語,輕松搞定重命名

大家好&#xff01;現在為了更好地適應全球化發展&#xff0c;許多人都有了海外交流、旅行、學習的需求。但是難免遇到一個問題&#xff1a;在電腦中的中文文件夾名稱如何快速翻譯成日語&#xff1f; 首先&#xff0c;第一步&#xff0c;我們需要打開文件批量改名&#xff0c;…

【Unity】編輯器下查找制定文件下的所有特定資源

需求上很簡單&#xff0c;就是在編輯器下&#xff0c;找到某個制定文件下的所有特定資源&#xff08;UnityEngine.Object&#xff09;。Unity 沒有提供專門的 API&#xff0c;我一開始想在網上搜索代碼&#xff0c;發現沒有現成可以直接用的。 功能實現本身并不復雜&#xff0c…

AWS EKS 集群自動擴容 Cluster Autoscaler

文章目錄 一&#xff0c;需求工作需求說明 二&#xff0c;部署精簡命令執行1&#xff0c;要求2&#xff0c;查看EC2 Auto Scaling groups Tag3&#xff0c;創建Serviceaccount需要的Policy&#xff0c;Role4&#xff0c;部署Cluster Autoscaler5&#xff0c;驗證6&#xff0c;常…

zotero在不同系統的安裝(win/linux)

1 window系統安裝 zotero 官網&#xff1a; https://www.zotero.org/ 官方文檔 &#xff1a;https://www.zotero.org/support/ (官方)推薦常用的插件: https://www.zotero.org/support/plugins 入門視頻推薦&#xff1a; Zotero 文獻管理與知識整理最佳實踐 點擊 exe文件自…

【環境配置】Windows 10 安裝 PyTorch 開發環境,以及驗證 YOLOv8

Windows 10 安裝 PyTorch 開發環境&#xff0c;以及驗證 YOLOv8 最近搞了一臺Windows機器&#xff0c;準備在上面安裝深度學習的開發環境&#xff0c;并搭建部署YOLOv8做訓練和測試使用&#xff1b; 環境&#xff1a; OS&#xff1a; Windows 10 顯卡&#xff1a; RTX 3090 安…

Bug日記-webstorm運行yarn 命令報錯

在windows中輸入yarn -v正確輸出&#xff0c;在webstrom終端中運行yarn命令輸出錯誤 問題&#xff1a;可能是由于 WebStorm 配置問題導致的。 解決方案&#xff1a; 檢查 WebStorm 的終端配置&#xff1a;在 WebStorm 中&#xff0c;點擊菜單欄的 “File”&#xff08;文件&am…