# sep設定分割符
# nrows設定讀取的行數
train_df = pd.read_csv(
'./data/train_set.csv'
, sep=
'\t'
, nrows=
100)
train_df.head(
)
第一列label為新聞的類別,第二列text為新聞的字元。
計算句子的長度
train_df[
'text_len'
]= train_df[
'text'].
(lambda x:
len(x.split(
' ')))
train_df[
'text_len'
].describe(
)
結果:100個句子,平均長度為872.32,最長為7125,最短為64。
count 100.000000
mean 872.320000
std 923.138191
min 64.000000
25% 359.500000
50% 598.000000
75% 1058.000000
max 7125.000000
視覺化分析
計算每個類別的樣本數量
字元統計
# 統計每個字元的個數
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
)# 統計不同字元在句子**現的次數
train_df[
'text_unique'
]= train_df[
'text'].
(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
)
假設字元3750,字元900和字元648是句子的標點符號,請分析賽題每篇新聞平均由多少個句子構成?
import re
train_df[
'sentence_len'
]= train_df[
'text'].
(lambda x:
len(re.split(
'[3750 900 648]'
, x)))
train_df[
'sentence_len'
].describe(
)
統計每類新聞**現次數對多的字元。
from collections import counter
defhandle
(x):
all_lines =
' '.join(
list
(x['text'])
) word_count = counter(all_lines.split(
" ")
) word_count =
sorted
(word_count.items(
), key=
lambda d:
int(d[1]
), reverse =
true
)return word_count[0]
res = train_df.groupby(
'label').
(handle)
NLP 理論實踐 Task2
正向最大匹配法演算法流程 從前往後取詞,每次減乙個字,直至詞典命中或剩下1個單字。假設詞典中最長的單詞為 5 個,那麼最大匹配的起始子串字數也為 5 個 1 從左往右讀入子串,掃瞄字典,測試讀入的子串是否在字典中 2 如果存在,則從輸入中刪除掉該子串,重新按照規則取子串,重複 1 3 如果不存在於字...
自然語言處理
自然語言處理主要步驟包括 2.詞法分析 對於英文,有詞頭 詞根 詞尾的拆分,名詞 動詞 形容詞 副詞 介詞的定性,多種詞意的選擇。比如diamond,有菱形 棒球場 鑽石3個含義,要根據應用選擇正確的意思。3.語法分析 通過語法樹或其他演算法,分析主語 謂語 賓語 定語 狀語 補語等句子元素。4.語...
自然語言處理
前言 自然語言處理 natural language processing 是計算科學領域與人工智慧領域中的乙個重要方向。它研究能實現人與計算機之間用自然語言進行有效通訊的各種理論和方法。自然語言處理是一門融語言學 電腦科學 數學於一體的科學。因此,這一領域的研究將涉及自然語言,即人們日常使用的語言...