class Document ( object ):
“”" 用于学习(训练)文档和测试文档。
如果应该训练分类器,
可选参数 lear__必须设置为 True。如果是测试文档,learn 必须是设置为 False。“”" _vocabulary = BagOfWords ()
def __init__ ( self , 词汇表):
self . __name = “”
self . __document_class = None
self 。_words_and_freq = BagOfWords ()
文档。_vocabulary = 词汇
DEF read_document (自,文件名, 学习=假):
“”,” A读取原稿假定该文件是在UTF-8或在异8859任一编码的…(Latin-1的)。
所述的字文档存储在词袋中,即 self._words_and_freq = BagOfWords() “”"
try :
text = open ( filename , “r” , encoding = ‘utf-8’ ) 。read ()
除了 UnicodeDecodeError :
text = open ( filename, “r” , encoding = ‘latin-1’ ) 。阅读()
文本 = 文本。下()
词 = re 。拆分( r “\W” ,文本)
自我。_number_of_words = 0
for word in words :
self 。_words_and_freq 。add_word ( word )
如果 学习:
文档。_词汇。add_word (字)
DEF __add__ (自,其他):
“”,“重载‘+’。操作员添加两个文件在于添加文件的BagOfWords‘’”
RES = 文献(文献。_vocabulary )
水库。_words_and_freq = self 。_words_and_freq + 其他。_words_and_freq
返回 资源
DEF vocabulary_length (自):
“”,“返回的词汇的长度”“”
返回 len个(文献。_vocabulary )
def WordsAndFreq ( self ):
“”" 返回字典,包含
文档的 BagOfWords 属性中
包含的单词(键)及其频率(值)__“”" return self 。_words_and_freq 。BagOfWords ()
def Words ( self ):
“”" 返回 Document 对象 “”"
<