(1). 针对附件“HW3.txt”中的600个文档(每行表示一个document,文档ID为1至600)
(i)使用jieba中文分词(https://pypi.org/project/jieba/)或其他中文分词工具进行分词;
(ii)统计600个文档中的token的总数和term的总数;
(iii)构建倒排索引,并输出以下七组查询的文档ID:“迁移”,“迁移学习”,“推荐”,“深度学习”,“隐私”,“跨领域”,“跨域”。
代码截图和详细的文字说明:
- 读取文档
# 读取文档,并按行分隔
doc = open('HW3.txt', 'r', encoding='gbk').read().splitlines()
- 计算token,term
# 添加自定义词库(可选)
for path in os.listdir('dictionary'):
jieba.load_userdict('dictionary/' + path)
# 计算token,term数量
# token使用list存储,term使用set存储(可去重)
token, term = list(), set()
for sentence in doc:
# 利用jieba进行分词 返回分词后的结果
seg_list = list(jieba.cut(sentence, cut_all=False))
token.extend(seg_list)
term.update(seg_list)
print('len(token) =', len(token))
print('len(term) =', len(term))
- 建立倒排索引
hashtable = {
}
for index, sentence in enumerate(doc):
# 利用jieba进行分词 返回分词后的结果
# 使用精确模式
for word in jieba.cut(sentence, cut_all=False):
if word in hashtable:
hashtable[word].append(index+1)
hashtable[word][0] += 1
else:
hashtable[word] = [1, index+1]

该博客探讨了使用jieba分词工具对600个文档进行分词,统计了token和term总数,并构建了倒排索引。此外,还详细介绍了VB编码和解码过程,以及Gamma编码和解码的实现,通过三个数字(113,309,720)验证了算法的正确性。
最低0.47元/天 解锁文章
1853

被折叠的 条评论
为什么被折叠?



