可以编写一个函数,当用C编译器编译时它将返回0,并且当用C++编译器编译时,将返回1(微不足道的
#ifdef __cplusplus情况并不令人感兴趣).
例如:
int isCPP()
{
return sizeof(char) == sizeof 'c';
}
Run Code Online (Sandbox Code Playgroud)
当然,只有在sizeof (char)不相同的情况下才会起作用sizeof (int)
另一个更便携的解决方案是这样的:
int isCPP()
{
typedef int T;
{
struct T
{
int a[2];
};
return sizeof(T) == sizeof(struct T);
}
}
Run Code Online (Sandbox Code Playgroud)
我不确定这些例子是否100%正确,但你明白了.我相信还有其他方法可以编写相同的功能.
在运行时可以检测到C++ 03和C++ 11之间有什么区别?换句话说,是否有可能编写一个类似的函数,它返回一个布尔值,表明它是由符合标准的C++ 03编译器还是C++ 11编译器编译的?
bool isCpp11()
{
//???
}
Run Code Online (Sandbox Code Playgroud) 我正在处理一个接受不同语言用户输入的应用程序(目前修复了3种语言).要求是用户可以输入文本,而不必费心通过UI中提供的复选框选择语言.
是否有现有的Java库来检测文本的语言?
我想要这样的东西:
text = "To be or not to be thats the question."
// returns ISO 639 Alpha-2 code
language = detect(text);
print(language);
Run Code Online (Sandbox Code Playgroud)
结果:
EN
Run Code Online (Sandbox Code Playgroud)
我不想知道如何自己创建一个语言检测器(我已经看到很多博客试图这样做).该库应提供简单的APi,并且完全脱机工作.开源或商业封闭并不重要.
我也在SO上发现了这个问题(还有一些):
有没有可以检测特定文本语言的C#库?即对于输入文本"This is a sentence",它应该将语言检测为"English".或者"Esto es una sentencia"它应该检测语言为"Spanish".
我理解从文本中检测语言不是一个确定性的问题.但Google Translate和Bing Translator都有一个"自动检测"选项,可以最好地猜测输入语言.是否有公开的类似内容,最好是在C#中?
我有一个表单,允许用户输入文本片段.那么怎样才能找出输入文本的语言?
现在特别是这些语言:
阿拉伯语:هذههيبعضالنصوصالعربية
中文:这是一些阿拉伯文字
日语:これは,いくつかのアラビア语のテキストです
[编辑]检测对文本有效,也可以通过API检索(不涉及浏览器)
是否有任何好的,开源的引擎用于检测文本所使用的语言,可能具有概率指标?一个我可以在本地运行,不查询谷歌或必应?我想在大约1500万页的OCR文本中检测每页的语言.
并非所有文档都包含使用拉丁字母的语言.
我有一个数据框,其中一列在每一行都有一个字符串列表。
平均而言,每个列表有 150 个单词,每个单词大约 6 个字符。
数据框的 700 行中的每一行都与一个文档有关,每个字符串都是该文档的一个单词;所以基本上我已经标记了文档的文字。
我想检测每个文档的语言,为此我首先尝试检测文档中每个单词的语言。
为此,我执行以下操作:
from textblob import TextBlob
def lang_detect(document):
lang_count = {}
for word in document:
if len(word) >= 4:
word_textblob = TextBlob(word)
lang_result = word_textblob.detect_language()
response = lang_count.get(lang_result)
if response is None:
lang_count[f"{lang_result}"] = 1
else:
lang_count[f"{lang_result}"] += 1
return lang_count
df_per_doc['languages_count'] = df_per_doc['complete_text'].apply(lambda x: lang_detect(x))
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我收到以下错误:
---------------------------------------------------------------------------
HTTPError Traceback (most recent call last)
<ipython-input-42-772df3809bcb> in <module>
25
---> 27 df_per_doc['languages_count'] = df_per_doc['complete_text'].apply(lambda x: lang_detect(x))
28
29
.
.
.
647 …Run Code Online (Sandbox Code Playgroud)