如何解析 guess_language 以读取 30000 条推文?
How to parse guess_language to read 30000 tweets?
我正在使用 guess_language 检测学校项目的推文语言。我使用 pandas 读取 .csv 文件。我有大约 30000 行。
但是,我的问题是猜测语言一次只能读取一条推文。
guess_language("Top story: ‘Massive Mental Health Crisis’ ")
'en'
我是 python 的新手,现在几乎一天都在尝试找出循环和 if 语句,而他们只 return 发布一条推文。
谢谢你,如果问题很蹩脚,我们深表歉意。
我使用了 Kareem 下面建议的代码。
from guess_language import guess_language resdf = nodupdf[ nodupdf['text'].apply(guess_language) == 'en' ]
它适用于小文件 (100 csv),但是当我将它应用于更大的文件时。它给了我这个错误。
9 10 中的 TypeError Traceback(最近一次调用最后一次)for chunk in noeng: ---> 11 chunk['text'].apply(guess_language)== 'en'
~\Anaconda3\lib\site-packages\pandas\core\series.py in apply(self, func, convert_dtype, args, **kwds) 4040 else: 4041 values = self.astype(object).values -> 4042 mapped = lib.map_infer(values, f, convert=convert_dtype) 4043 4044 if len(mapped) and isinstance(mapped[0], Series):
pandas_libs\lib.pyx 在 pandas._libs.lib.map_infer()
~\Anaconda3\lib\site-packages\guess_language__init__.py in guess_language(text, hints) 322 """Return the ISO 639-1 language code. 323 """ --> 324 words = WORD_RE.findall(text[:MAX_LENGTH].replace("'", "'")) 325 return 识别(单词, find_runs(单词), 提示) 326
类型错误:'float' 对象不可订阅
以为是内存错误,用了chunk.
noeng=pd.read_csv(r'C:\Users\jean\nodupdf.csv', chunksize=10) for chunk in noeng: chunk['text'].apply(guess_language)== 'en'
我仍然遇到同样的错误。
你可以获取每一个并基本上像这样处理它们
resdf = newdf[ newdf['text'].apply(guess_language) == 'en' ]
resdf 应包含其推文具有英语分类的原始行。
函数 apply
应该在每条推文上应用你的函数 guess_language
并且 return 分类后的列值,然后我们使用它来仅获取行的索引有 en
作为分类。
我正在使用 guess_language 检测学校项目的推文语言。我使用 pandas 读取 .csv 文件。我有大约 30000 行。
但是,我的问题是猜测语言一次只能读取一条推文。
guess_language("Top story: ‘Massive Mental Health Crisis’ ")
'en'
我是 python 的新手,现在几乎一天都在尝试找出循环和 if 语句,而他们只 return 发布一条推文。
谢谢你,如果问题很蹩脚,我们深表歉意。
我使用了 Kareem 下面建议的代码。
from guess_language import guess_language resdf = nodupdf[ nodupdf['text'].apply(guess_language) == 'en' ]
它适用于小文件 (100 csv),但是当我将它应用于更大的文件时。它给了我这个错误。
9 10 中的 TypeError Traceback(最近一次调用最后一次)for chunk in noeng: ---> 11 chunk['text'].apply(guess_language)== 'en'
~\Anaconda3\lib\site-packages\pandas\core\series.py in apply(self, func, convert_dtype, args, **kwds) 4040 else: 4041 values = self.astype(object).values -> 4042 mapped = lib.map_infer(values, f, convert=convert_dtype) 4043 4044 if len(mapped) and isinstance(mapped[0], Series):
pandas_libs\lib.pyx 在 pandas._libs.lib.map_infer()
~\Anaconda3\lib\site-packages\guess_language__init__.py in guess_language(text, hints) 322 """Return the ISO 639-1 language code. 323 """ --> 324 words = WORD_RE.findall(text[:MAX_LENGTH].replace("'", "'")) 325 return 识别(单词, find_runs(单词), 提示) 326
类型错误:'float' 对象不可订阅
以为是内存错误,用了chunk.
noeng=pd.read_csv(r'C:\Users\jean\nodupdf.csv', chunksize=10) for chunk in noeng: chunk['text'].apply(guess_language)== 'en'
我仍然遇到同样的错误。
你可以获取每一个并基本上像这样处理它们
resdf = newdf[ newdf['text'].apply(guess_language) == 'en' ]
resdf 应包含其推文具有英语分类的原始行。
函数 apply
应该在每条推文上应用你的函数 guess_language
并且 return 分类后的列值,然后我们使用它来仅获取行的索引有 en
作为分类。