我想将给定的字符串分割成包含在该字符串中的字母段。例如,如果给定以下字符串:
Los eventos automovilísticos comenzaron poco después de la construcción exitosa de los primeros automóviles a gasolina. El veloz zorro marrón saltó sobre el perezoso perro.
Motoring events began soon after the construction of the first successful gasoline-fueled automobiles. The quick brown fox jumped over the lazy dog.
Мотори су почели убрзо након изградње првих успешних аутомобила на бензин.Брза смеђа лисица је прескочила лењог пса.
Автомобилните събития започнаха скоро след конструирането на първите успешни автомобили с бензиново гориво. Бързата кафява лисица прескочи мързеливото куче.
自動車イベントは、最初の成功したガソリン燃料自動車の製造直後に始まりました。 素早い茶色のキツネは怠け者の犬を飛び越えました。
بدأت أحداث السيارات بعد وقت قصير من بناء أول سيارة ناجحة تعمل بالبنزين. قفز الثعلب البني السريع فوق الكلب الكسول.
上述文本包含西班牙语、英语、塞尔维亚语、保加利亚语、日语、阿拉伯语段落(语言顺序遵循段落顺序)。
然后,经过应用某些魔术函数后,我希望得到以下输出:
{
"langs": [
{
"alphabet": "latin",
"text": "Los eventos automovilísticos comenzaron poco después de la construcción exitosa de los primeros automóviles a gasolina. El veloz zorro marrón saltó sobre el perezoso perro. Motoring events began soon after the construction of the first successful gasoline-fueled automobiles. The quick brown fox jumped over the lazy dog."
},
{
"alphabet": "cyrillic",
"text": "Мотори су почели убрзо након изградње првих успешних аутомобила на бензин.Брза смеђа лисица је прескочила лењог пса. Автомобилните събития започнаха скоро след конструирането на първите успешни автомобили с бензиново гориво. Бързата кафява лисица прескочи мързеливото куче."
},
{
"alphabet": "japanese",
"text": "自動車イベントは、最初の成功したガソリン燃料自動車の製造直後に始まりました。 素早い茶色のキツネは怠け者の犬を飛び越えました。"
},
{
"alphabet": "arabic",
"text": "بدأت أحداث السيارات بعد وقت قصير من بناء أول سيارة ناجحة تعمل بالبنزين. قفز الثعلب البني السريع فوق الكلب الكسول."
}
]
}
正如您所见,一些语言按其家族字母表进行分组。例如,西班牙语和英语段落被归为拉丁语系,塞尔维亚语和保加利亚语段落被归为西里尔语系。这是因为很难找到特定的语言(因为大多数字母在不同语言之间是共享的)。
理想情况下,我的最终输出应该像这样:
{
"langs": [
{
"lang": "spanish",
"text": "Los eventos automovilísticos comenzaron poco después de la construcción exitosa de los primeros automóviles a gasolina. El veloz zorro marrón saltó sobre el perezoso perro."
},
{
"lang": "english",
"text": "Motoring events began soon after the construction of the first successful gasoline-fueled automobiles. The quick brown fox jumped over the lazy dog."
},
{
"lang": "serbian",
"text": "Мотори су почели убрзо након изградње првих успешних аутомобила на бензин.Брза смеђа лисица је прескочила лењог пса."
},
{
"lang": "bulgarian",
"text":"Автомобилните събития започнаха скоро след конструирането на първите успешни автомобили с бензиново гориво. Бързата кафява лисица прескочи мързеливото куче."
},
{
"lang": "japanese",
"text": "自動車イベントは、最初の成功したガソリン燃料自動車の製造直後に始まりました。 素早い茶色のキツネは怠け者の犬を飛び越えました。"
},
{
"lang": "arabic",
"text": "بدأت أحداث السيارات بعد وقت قصير من بناء أول سيارة ناجحة تعمل بالبنزين. قفز الثعلب البني السريع فوق الكلب الكسول."
}
]
}
我需要根据语言将文本拆分成子字符串。为此,我计划使用cld2
,它可以将文本拆分成句子,但根据我的实验,当字符串包含混合字母的文本时(即西里尔文+日语等),它表现不佳。然而,cld2
在共享字母族的混合语言文本上表现良好(即法语+英语等)。
因此,我计划按字母族将文本拆分成子字符串,然后对于每个字母族,我将应用cld2
来预测具体的语言。
另一个重要的要求:
- 混合语言可能不像上面的示例那样明确地分隔开(我之所以这样做是为了简单起见并使问题更清晰)
- 我需要能够“离线”执行此操作,而无需连接到第三方服务器(例如Google等),因为需要处理大量数据
如果您对上述问题有任何想法,我将不胜感激。提前致谢。