2017-07-01 31 views
5

如果我有一個向量化的文本字符串,我應該如何處理它裏面的數字?或者,如果我使用數字和詞彙來提供神經網絡,我怎樣才能將數字保存爲數字?向量化單詞時如何處理文本字符串中的數字?

我打算製作一本我所有單詞的字典(as suggested here)。在這種情況下,所有字符串都將變成數組數組。我應該如何處理數字字符?如何輸出一個不會將單詞索引與數字字符混合的向量?

將數字轉換爲字符串會削弱我饋入網絡的信息嗎?

+0

在詞典中不存在的許多應用詞中,轉換爲''。同樣,根據您的應用程序,將所有數字轉換爲特殊標記可能會很方便,如「」。 –

回答

2

您提供的鏈接表明,由.split(' ')產生的所有內容都被索引 - 詞彙,但也包括數字,可能是表情符號。 (我仍照顧標點符號)。除非您對數據或問題有更多先驗知識,否則您可以從此開始。

編輯

例字面上使用您的字符串並且其代碼:

corpus = {'my car number 3'} 
dictionary = {} 
i = 1 
for tweet in corpus: 
    for word in tweet.split(" "): 
    if word not in dictionary: dictionary[word] = i 
    i += 1 
print(dictionary) 
# {'my': 1, '3': 4, 'car': 2, 'number': 3} 
+0

但是想象一下,我的詞典中有一個詞「car」,它在我的詞典中獲得索引「3」。如果我在文本中還有數字「3」(像「3號車」這樣的短語),向網絡輸入一個帶有錯誤重複數字的矢量是沒有意義的,例如[12,** 3 **,11, ** 3 **],可以解釋爲「車號車」。 – Rikard

+0

你沒有數字'3',你有* string *'「3」',它可以被任何數字索引。 – user1735003

+0

但是,從輸入中刪除_Type_,作爲一個數字就是信息本身。 – Rikard

1

擴大與@ user1735003你的討論 - 讓我們考慮表示數字的兩種方式:治療它

  1. 作爲字符串並將其視爲另一個詞並在形成字典時爲其分配一個ID。或
  2. 將數字轉換爲實際詞語:'1'變成'一','2'變成'二'等等。

第二個改變上下文嗎?爲了驗證它,我們可以使用word2vec找到兩個表示的相似性。如果他們有相似的背景,分數將會很高。

例如, 1one具有0.17,2two相似性得分具有0.23相似性得分。他們似乎表明,他們如何使用的背景完全不同。

通過處理數字作爲另一個詞,你是不是改變了 上下文,但是通過做這些數字的任何其他轉換,您 無法保證其更好。所以,最好不要把它當作另一個詞來處理。

:兩個word-2-vecglove和通過處理該數字作爲字符串(情況1)訓練。

0

以下紙張可以是有幫助的:http://people.csail.mit.edu/mcollins/6864/slides/bikel.pdf

具體而言,第7頁。

之前,他們使用<unknown>標籤,他們嘗試用普通模式的名稱標記,如更換字母數字符號組合:

FourDigits (good for years) 

我試圖實現它,它給了很大的成績。

相關問題