簡體   English   中英

拆分文本文件以在R中創建語料庫

[英]Splitting text file to create corpus in R

我有一個包含100條文章的文本文件。 每篇文章的末尾都是Document,后跟一個空格 ,然后是一個字母數字 字母數字長度為25個字符。

四篇文章的結尾示例。字母數字沒有固定的模式。

  • 文件AFNR000020161206ecc700006
  • 文檔TEKMET0020161202ecc200008
  • 文件AFNR000020161130ecc10001o
  • 文件AFNR000020161127ecbs00018

我的代碼讀取R中的文本文件並拆分文本文件

textfile <- "Text.txt"
TextData <-readLines(textfile)
head(TextData)
length(TextData)

 nchar(TextData)
 TextData = strsplit(TextData, "<Document>" "[a-zA-Z0-9]")

我堅持使用strsplitDocument alphanumeric上創建拆分。

拆分后,我可以創建一個語料庫:

library(tm)
doc.vec <- VectorSource(TextData)
corpusDoc <- Corpus(doc.vec)
summary(corpusDoc)

謝謝

尚不清楚您的數據看起來像什么,但是假設它只是一個長字符串,並且“文檔字母數字代碼”與​​文本的其余部分一致,則應該可以進行以下操作:

# mock data
TextData <- "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam egestas sapien eu leo rutrum, non commodo metus auctor. Quisque id libero quis augue bibendum auctor sed vel odio. Aliquam quam odio, maximus vitae elit at, pharetra volutpat nulla. Nam iaculis mattis lectus, sit amet euismod neque ornare consectetur. Cras nec nibh sit amet massa laoreet tempor sit amet in sem. Sed pulvinar sapien risus, molestie cursus augue rhoncus sed. Donec ullamcorper tellus vel tortor finibus pretium. Sed non tristique nisi. Document AFNR000020161206ecc700006 Vestibulum quis risus pulvinar elit blandit faucibus sed et massa. Phasellus non arcu vulputate, aliquam felis sit amet, pellentesque lorem. Praesent ut felis pellentesque, tincidunt risus imperdiet, vehicula ante. Donec odio sapien, vulputate sed semper at, pharetra sit amet dui. Fusce aliquam ullamcorper nunc in ullamcorper. Suspendisse vitae ex aliquam turpis vestibulum semper at ut quam. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nam varius, risus sed feugiat mollis, nunc urna hendrerit mi, eu cursus erat mi quis ligula. Maecenas sit amet sagittis tellus. Donec ultricies faucibus ipsum id mattis. Ut lacinia, diam nec dignissim vestibulum, nibh augue tincidunt dolor, eu dictum felis augue in elit. Sed et scelerisque felis. Document TEKMET0020161202ecc200008 Aenean ut erat mattis, convallis orci eget, tincidunt massa. Integer dictum in erat et ornare. Donec et cursus eros. Aenean condimentum erat in lacus dictum, ac convallis tortor venenatis. Donec luctus dapibus aliquam. Maecenas et ipsum ac lacus convallis luctus. Phasellus volutpat risus sit amet volutpat vestibulum. Vestibulum eu elit sed massa imperdiet congue id interdum odio. Document AFNR000020161130ecc10001o Proin et accumsan nisi. Suspendisse tempus accumsan mollis. Integer aliquam fermentum consequat. Nunc sit amet suscipit tellus, in fringilla diam. Nulla rutrum elit nec blandit varius. Praesent vehicula nibh orci, nec facilisis sem vulputate non. Cras vel ipsum eleifend, vulputate ante congue, facilisis ligula. Integer ac mollis nibh. Ut vitae lacus eget mauris ultrices iaculis non eget diam. Praesent placerat lorem id ante maximus cursus. Ut quis lacus nec turpis tincidunt sagittis lacinia at tortor. Cras vitae posuere diam. Maecenas ut convallis lacus, in commodo neque. Sed rhoncus cursus arcu, nec pharetra odio lacinia quis. Sed nec neque libero. Etiam sit amet purus eros. Document AFNR000020161127ecbs0001"

# split on desired string
TextData <- strsplit(TextData, "Document [a-zA-Z0-9]{25}")

# if you want it as a vecotr
TextData <- unlist(TextData)

似乎問題出在strsplit函數中定義正則表達式的方式。

暫無
暫無

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

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