gpt4 book ai didi

python - python 和 nltk 的 Utf-8 问题

转载 作者:太空宇宙 更新时间:2023-11-04 10:29:48 24 4
gpt4 key购买 nike

我有这个小脚本,它基本上只是我为一个更大的程序做的测试。我的编码有问题。当我尝试写入文件时,utf-8 字符(例如 øæå)未正确编码。为什么会这样,我该如何解决这个问题?

#!/usr/bin/python
# -*- coding: utf-8 -*-

import nltk
from nltk.collocations import *

collocations = open('bam.txt', 'w')
bigram_measures = nltk.collocations.BigramAssocMeasures()
tokens = nltk.wordpunct_tokenize("Hei på deg øyerusk, du er meg en gammel dust, neida neida, det er ikke helt sant da."
"Men du, hvorfor så brusk, ikke klut i din susk på en runkete lust")
finder = BigramCollocationFinder.from_words(tokens)
# finder.apply_freq_filter(3)
scored = finder.score_ngrams(bigram_measures.raw_freq)
for i in scored:
print i[0][0] + ' ' + i[0][1] + ': ' + str(i[1]) + '\n'
collocations.write(i[0][0] + ' ' + i[0][1] + ': ' + str(i[1]) + '\n')

collocations.close()

最佳答案

问题是 nltk.wordpunct_tokenize 不适用于非 ascii 数据。最好使用 nltk.tokenize.punkt 中的 PunktWordTokenizer。所以导入如下:

from nltk.tokenize.punkt import PunktWordTokenizer as PT

并替换:

tokens = nltk.wordpunct_tokenize("Hei på deg øyerusk, du er meg en gammel dust, neida neida, det er ikke helt sant da."
"Men du, hvorfor så brusk, ikke klut i din susk på en runkete lust")

与:

tokens = PT().tokenize("Hei på deg øyerusk, du er meg en gammel dust, neida neida, det er ikke helt sant da." 
"Men du, hvorfor så brusk, ikke klut i din susk på en runkete lust")

关于python - python 和 nltk 的 Utf-8 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27507550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com