日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java统计文本中英文单词个数split_零基础入门NLP - 新闻文本分类Task2(天池入门赛)...

發布時間:2024/9/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java统计文本中英文单词个数split_零基础入门NLP - 新闻文本分类Task2(天池入门赛)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本章主要內容是主要是通過pandas模塊來進行數據分析。(注:文章只是對天池入門賽課件的學習)

一、學習目標

1、學習使用pandas讀取賽題規律

2、分布賽題數據的分布規律

二、數據讀取

使用pandas直接讀取數據,

import pandas as pd # 讀取數據 train_df = pd.read_csv('D:/py_project/天池/data/train_set.csv', sep='t') train_df.head()

第一列為數據的label值,第二列為新聞的內容。

三、數據分析

3.1、目標

1)賽題數據中,新聞文本的長度是多少?

2)類別分布是什么樣的?什么類別占比比較多

3)字符分布是什么樣的?

3.2、句子長度分析

賽題數據中,每行句子的字符使用空格隔開,所以可以通過直接統計單詞的個數來得到每個句子的長度。

train_df['text_len'] = train_df['text'].apply(lambda x: len(x.split(' '))) print(train_df['text_len'].describe())

從圖中的統計可以看出,20萬條數據的平均長度為907字符,最長的句子為57921字符,最短的只有2字符,長度差別較大。

所以我們導入matplot庫來看句子長度的分布,

import matplotlib.pyplot as plt _ = plt.hist(train_df['text_len'], bins=200) plt.xlabel('Text char count') plt.title("Histogram of char count")

從分布圖可以看出,句子長度主要分布在20000以下

3.3、類別分布統計

現在統計各類新聞的類別數量,首先做出類別分布圖,

_ = plt.hist(train_df['text_len'], bins=200) plt.xlabel('Text char count') plt.title("Histogram of char count")

在數據集中標簽的對應的關系如下:{'科技': 0, '股票': 1, '體育': 2, '娛樂': 3, '時政': 4, '社會': 5, '教育': 6, '財經': 7, '家居': 8, '游戲': 9, '房產': 10, '時尚': 11, '彩票': 12, '星座': 13}

從直方圖看出,標簽分布不均勻,科技類型新聞最多。

3.4、字符分布統計

我們可以通過collections庫中的Counter函數來統計詞頻,

from collections import Counter all_lines = ' '.join(list(train_df['text'])) word_count = Counter(all_lines.split(" ")) word_count = sorted(word_count.items(), key=lambda d:d[1], reverse=True)print(len(word_count)) print(word_count[0]) print(word_count[-1])

從統計結果可以看出,總共有6869個字符,其中'3750'這個字符出現最多,有7482224次,而'3133'這個字符出現最少,只有1次。

下面代碼統計了不同字符在句子中出現的次數,其中字符3750,字符900和字符648在20w新聞的覆蓋率接近99%,很有可能是標點符號。

train_df['text_unique'] = train_df['text'].apply(lambda x: ' '.join(list(set(x.split(' '))))) all_lines = ' '.join(list(train_df['text_unique'])) word_count = Counter(all_lines.split(" ")) word_count = sorted(word_count.items(), key=lambda d:int(d[1]), reverse = True)print(word_count[0]) print(word_count[1]) print(word_count[2])

四、結論

通過上述分析過程,我們可以得出結論:

  • 賽題中每個新聞包含的字符個數平均為1000個,還有一些新聞字符較長;
  • 賽題中新聞類別分布不均勻,科技類新聞樣本量接近4w,星座類新聞樣本量不到1k;
  • 賽題總共包括7000-8000個字符;
  • 每個新聞平均字符個數較多,可能需要截斷;
  • 由于類別不均衡,會嚴重影響模型的精度;
  • 總結

    以上是生活随笔為你收集整理的java统计文本中英文单词个数split_零基础入门NLP - 新闻文本分类Task2(天池入门赛)...的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。