2011-12-29 39 views
0

我創建了一個matlab程序來在文本文件中查找單詞bigrams及其頻率。爲此,我創建了一個使用textread函數的字符串數組:使用matlab從文件中讀取文本時跳過某些詞

unigrams = textread('file.txt','%s');

但我也希望省略一堆詞,如'to','the','is',''''等,特殊字符'#','$','&'和'%'從我的細胞陣列。有沒有辦法在閱讀原始文件中的單詞時排除這些單詞。

謝謝。

+1

是否有一個具體的原因,你爲什麼會想這樣做*而*從文件中讀取單詞,而不是*後*?如果沒有,請參閱下面的答案。 – Kavka 2011-12-29 19:47:22

+0

我建議使用Python,尤其是NLTK。 – cyborg 2011-12-29 22:25:44

+0

@cyborg我同意...... python非常適合字符串處理。 – 2011-12-29 23:02:14

回答

1

您可以使用setdiff後閱讀的文本刪除不需要的話:

unigrams = {'I' 'like' 'this' 'or' 'that' 'Here' 'are' 'some' 'symbols' '#' '$' '&'} 
setdiff(unigrams, {'the', 'is' 'or' '#' '$' '&'}, 'stable') 

unigrams = 
    Columns 1 through 8 
    'I' 'like' 'this' 'or' 'that' 'Here' 'are' 'some' 
    Columns 9 through 12 
    'symbols' '#' '$' '&' 
ans = 
    'I' 'like' 'this' 'that' 'Here' 'are' 'some' 'symbols' 
+0

我同意在閱讀後有一堆簡單的方法可以做到這一點。雖然不知道爲什麼... OP雖然不希望這樣做*雖然不知道爲什麼... – 2011-12-29 19:42:15

+0

我相信,如果在閱讀**之後執行操作**,性能將會提高。這可能不是海報問的方式,但它會達到相同的效果,假設整個文件將適合內存,也就是說。 – 2011-12-29 20:06:43

+0

我已經閱讀了數千個文件來查找bigrams,這佔用了很多時間。所以我只需要最好的方法來排除這些詞。 Kavka建議的方式非常完美。如果在閱讀文件的時候,之前或之後有另一種更好的表現方法來排除單詞,請告訴我。 @ cyborg我從來沒有使用Python,如果有更好的方法來在python中執行這些代碼,可以請你建議從哪裏開始。 @全部感謝您的幫助。 – AbbyJ 2011-12-30 09:43:30

相關問題