You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python将印地语、混合印英文字句转英文?及相关问题求助

解决方案汇总

问题1:推特抓取代码失效

原因分析

  • 若使用网页爬虫(如BeautifulSoup/Scrapy):推特网页DOM结构频繁更新,旧的元素定位规则失效
  • 若使用API:旧版Twitter API(v1.1)已被限制,必须迁移到Twitter API v2

修复方案

如果用API,以下是基于tweepy的v2版本示例(需先申请开发者账号并获取Bearer Token):

import tweepy

# 替换为你的Bearer Token
BEARER_TOKEN = "your-bearer-token-here"

client = tweepy.Client(bearer_token=BEARER_TOKEN)

# 抓取指定关键词的推文
response = client.search_recent_tweets(query="maggi", max_results=10)
for tweet in response.data:
    print(tweet.text)

如果用网页爬虫,需重新用浏览器开发者工具定位推文内容的新CSS选择器/XPath,例如当前推特推文的容器选择器为div[data-testid="tweetText"]。


问题2:Unicode格式多语言内容转英文失败

步骤1:先修复乱码(解码Unicode字符)

你提供的示例是印地语Unicode字符因编码错误显示乱码,先解码为正常印地语文本:

# 乱码字符串示例
garbled_text = "  - 400 रà¥à¤ªà¤¯à¥‡ में à¤à¤• पà¥à¤²à¥‡à¤Ÿ maggi, लोगों के उड़ गठहोश"
# 解码为正常印地语
decoded_text = garbled_text.encode('latin1').decode('utf-8')
# 解码后结果:"  - 400 रुपये में एक प्लेट maggi, लोगों के एट्ट गड़ होंड़"

步骤2:翻译为英文

使用Hugging Face transformers的多语言翻译模型(避免依赖第三方API限制):

from transformers import M2M100ForConditionalGeneration, M2M100Tokenizer

model = M2M100ForConditionalGeneration.from_pretrained("facebook/m2m100_418M")
tokenizer = M2M100Tokenizer.from_pretrained("facebook/m2m100_418M")

# 设置源语言为印地语(hi),目标语言为英文(en)
tokenizer.src_lang = "hi"
encoded_hi = tokenizer(decoded_text, return_tensors="pt")
generated_tokens = model.generate(**encoded_hi, forced_bos_token_id=tokenizer.get_lang_id("en"))
english_text = tokenizer.batch_decode(generated_tokens, skip_special_tokens=True)[0]

print(english_text)
# 输出示例:" - 400 rupees a plate of maggi, people's anger is high"

问题3:Hinglish混合文本转英文

Hinglish是罗马化印地语+英文的混合,推荐使用专门的多语言翻译模型,或指定源语言为印地语让翻译工具识别罗马化内容:

方案1:使用transformers模型

from transformers import pipeline

translator = pipeline("translation", model="facebook/m2m100_418M")
# 示例Hinglish文本
hinglish_text = "ye to kuch nahi, do you remember the free cars you get with bournvita which had a winder too to accelerate those cars 😊"
# 强制源语言为hi(罗马化印地语会被模型识别),目标语言为en
result = translator(hinglish_text, src_lang="hi", tgt_lang="en")
print(result[0]['translation_text'])
# 输出示例:"This is nothing, do you remember the free cars you got with Bournvita which also had a winder to accelerate those cars 😊"

方案2:使用googletrans(需注意版本兼容性)

from googletrans import Translator

translator = Translator()
# 手动指定源语言为印地语(hi),避免自动检测错误
result = translator.translate(hinglish_text, src='hi', dest='en')
print(result.text)

内容的提问来源于stack exchange,提问作者RISHAV BHARDWAJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 18:20:10