簡體   English   中英

NLP:將數據集預處理為新數據集

[英]NLP: pre-processing dataset into a new dataset

我需要幫助處理未排序的數據集。 對不起,如果我是一個完整的菜鳥。 我以前從來沒有做過那樣的事。 如您所見,每個對話都由一個 dialogueID 標識,該 dialogueID 由多行“from”和“to”以及文本消息組成。 我想將來自 dialogueID 的同一發件人的短信連接到一列,並將接收方的短信連接到另一列。 這樣,我就可以得到一個只有 [dialogueID, sender, receiver] 的新 csv 文件。

數據集 新的數據集應該是這樣的新數據集

我看了多個教程,真的很難弄清楚如何去做。 我在這篇9 年前的帖子中讀到,遍歷數據框並不是一個好主意。 有人可以用代碼片段幫助我,或者給我一個提示,告訴我如何正確地做到這一點而不會使事情過於復雜嗎? 我想到了類似下面這個偽代碼的東西,但是 100 萬行的性能不是很好,對吧?

while !endOfFile
  for dialogueID in range (0, 1038324)
    if dialogueID+1 == dialogueID and toValue.isnull()
      concatenate textFromPrevRow + " " + textFromCurrentRow
      add new string to table column sender
    else
      add text to column receiver

編輯 1

根據您的澄清,這就是我相信您正在尋找的。

創建一個聚合 function,它基本上將您的字符串值與換行符連接起來。 然后按dialogueID分組並應用您的聚合。

d = {}
d['from'] = '\n'.join
d['to'] = '\n'.join
new_df = dialogue_dataframe.groupby('dialogueID', as_index=False).agg(d)

之后根據需要重命名列:

df.rename(columns={"from": "sender", "to": "receiver"})

原答案

不太確定我是否理解您要實現的目標,但也許會提供一些見解。 也許寫幾行你希望得到的表格,以便更好地說明

雖然數據的確切結構(以及您的任務)並不完全清楚,但也許DataFrame.apply或者更確切地說DataFrame.aggregate可以幫助您加快速度。 另外,我會聚合成一本字典或 dataframe 由對話 ID 索引。 這樣您就可以輕松檢查給定的對話/發件人是否已經存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM