|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 blackantt 于 2023-5-13 10:06 编辑
en.zip
(17.18 KB, 下载次数: 2)
import fasttext
from blingfire import text_to_sentences
fasttext.FastText.eprint = lambda x: None #避免出现告警, Warning : `load_model` does not return WordVectorModel or SupervisedModel any more, but a `FastText`
# 加载预训练的模型
model = fasttext.load_model("./lid.176.bin")
txt = """
"""
txt1 = """
"""
# print(txt)
txt = txt.replace('\n', ' ').replace('“', ' ').replace('”', ' ').replace('?', ' ').replace('‘', " ").replace('’', " ").replace('!', ' ').replace('。', ' ').replace('…', ' ').replace('. . .', '').replace('...','...').replace('–','-')
txt1 = txt1.replace('\n', ' ').replace('“', ' ').replace('”', ' ').replace('?', ' ').replace('‘', " ").replace('’', " ").replace('!', ' ').replace('。', ' ').replace('…', ' ').replace('. . .', '').replace('...','...').replace('–','-')
language_detected1 = model.predict(txt1, k=1)
if language_detected1[0][0] == '__label__en': #只允许英文句子加入句子列表,如果要抽取其它语种的,在这里修改
print('--------------------------------------------- en') #得到单页文本
elif language_detected1[0][0] == '__label__zh': #其它语种跳过
print('********************************************* cn')
else: #其它语种跳过
print('unknown, maybe 汉语标点用在英文中了')
首先确认您已经正确安装了fasttext和blingfire库。如果没有,请运行以下命令安装: pip install fasttext blingfire
确保您的lid.176.bin文件存在于指定目录中。如果找不到该文件,请从这里下载。
我对代码进行了格式优化,并添加了对输入文本的一些示例: import fasttext
# Suppress warning messages
fasttext.FastText.eprint = lambda x: None
# Load the pre-trained model
model = fasttext.load_model("./lid.176.bin")
txt = """
This is a test sentence in English.
"""
txt1 = """
这是一段中文测试句子。
"""
def clean_text(text):
replacements = {
"\n": " ", "“": " ", "”": " ", "?": " ", "‘": " ",
"’": " ", "!": " ", "。": " ", "…": " ", ". . .": "",
"...": "...", "–": "-"
}
for old, new_ in replacements.items():
text = text.replace(old, new_)
return text
txt = clean_text(txt)
txt1 = clean_text(txt1)
language_detected1 = model.predict(txt1, k=1)
if language_detected1[0][0] == '__label__en':
print('--------------------------------------------- en')
elif language_detected1[0][0] == '__label__zh':
print('********************************************* cn')
else:
print('unknown, maybe 汉语标点用在英文中了')
注意这里只对txt1进行了语言检测,如果您希望检测更多的文本,请将它们添加到适当的位置并进行相应的修改。对于自动检测和输出结果,可以根据需要将代码封装成函数。
如果你的代码还有任何错误或者不对的地方,请告诉我
|
|