Skip to main content

An accurate natural language detection library, suitable for short text and mixed-language text

Project description

lingua

build status codecov supported languages supported Python versions pypi license


1. What does this library do?

Its task is simple: It tells you which language some text is written in. This is very useful as a preprocessing step for linguistic data in natural language processing applications such as text classification and spell checking. Other use cases, for instance, might include routing e-mails to the right geographically located customer service department, based on the e-mails' languages.

2. Why does this library exist?

Language detection is often done as part of large machine learning frameworks or natural language processing applications. In cases where you don't need the full-fledged functionality of those systems or don't want to learn the ropes of those, a small flexible library comes in handy.

Python is widely used in natural language processing, so there are a couple of comprehensive open source libraries for this task, such as Google's CLD 2 and CLD 3, Langid, FastText, FastSpell, Simplemma and Langdetect. Unfortunately, except for the last one they have two major drawbacks:

  1. Detection only works with quite lengthy text fragments. For very short text snippets such as Twitter messages, they do not provide adequate results.
  2. The more languages take part in the decision process, the less accurate are the detection results.

Lingua aims at eliminating these problems. She nearly does not need any configuration and yields pretty accurate results on both long and short text, even on single words and phrases. She draws on both rule-based and statistical methods but does not use any dictionaries of words. She does not need a connection to any external API or service either. Once the library has been downloaded, it can be used completely offline.

3. A short history of this library

This library started as a pure Python implementation. Python's quick prototyping capabilities made an important contribution to its improvements. Unfortunately, there was always a tradeoff between performance and memory consumption. At first, Lingua's language models were stored in dictionaries during runtime. This led to quick performance at the cost of large memory consumption (more than 3 GB). Because of that, the language models were then stored in NumPy arrays instead of dictionaries. Memory consumption reduced to approximately 800 MB but CPU performance dropped significantly. Both approaches were not satisfying.

Starting from version 2.0.0, the pure Python implementation was replaced with compiled Python bindings to the native Rust implementation of Lingua. This decision has led to both quick performance and a small memory footprint of less than 1 GB. The pure Python implementation is still available in a separate branch in this repository and will be kept up-to-date in subsequent 1.* releases. Both 1.* and 2.* versions will remain available on the Python package index (PyPI).

4. Which languages are supported?

Compared to other language detection libraries, Lingua's focus is on quality over quantity, that is, getting detection right for a small set of languages first before adding new ones. Currently, the following 75 languages are supported:

  • A
    • Afrikaans
    • Albanian
    • Arabic
    • Armenian
    • Azerbaijani
  • B
    • Basque
    • Belarusian
    • Bengali
    • Norwegian Bokmal
    • Bosnian
    • Bulgarian
  • C
    • Catalan
    • Chinese
    • Croatian
    • Czech
  • D
    • Danish
    • Dutch
  • E
    • English
    • Esperanto
    • Estonian
  • F
    • Finnish
    • French
  • G
    • Ganda
    • Georgian
    • German
    • Greek
    • Gujarati
  • H
    • Hebrew
    • Hindi
    • Hungarian
  • I
    • Icelandic
    • Indonesian
    • Irish
    • Italian
  • J
    • Japanese
  • K
    • Kazakh
    • Korean
  • L
    • Latin
    • Latvian
    • Lithuanian
  • M
    • Macedonian
    • Malay
    • Maori
    • Marathi
    • Mongolian
  • N
    • Norwegian Nynorsk
  • P
    • Persian
    • Polish
    • Portuguese
    • Punjabi
  • R
    • Romanian
    • Russian
  • S
    • Serbian
    • Shona
    • Slovak
    • Slovene
    • Somali
    • Sotho
    • Spanish
    • Swahili
    • Swedish
  • T
    • Tagalog
    • Tamil
    • Telugu
    • Thai
    • Tsonga
    • Tswana
    • Turkish
  • U
    • Ukrainian
    • Urdu
  • V
    • Vietnamese
  • W
    • Welsh
  • X
    • Xhosa
  • Y
    • Yoruba
  • Z
    • Zulu

5. How accurate is it?

Lingua is able to report accuracy statistics for some bundled test data available for each supported language. The test data for each language is split into three parts:

  1. a list of single words with a minimum length of 5 characters
  2. a list of word pairs with a minimum length of 10 characters
  3. a list of complete grammatical sentences of various lengths

Both the language models and the test data have been created from separate documents of the Wortschatz corpora offered by Leipzig University, Germany. Data crawled from various news websites have been used for training, each corpus comprising one million sentences. For testing, corpora made of arbitrarily chosen websites have been used, each comprising ten thousand sentences. From each test corpus, a random unsorted subset of 1000 single words, 1000 word pairs and 1000 sentences has been extracted, respectively.

Given the generated test data, I have compared the detection results of Lingua, FastText, FastSpell, Langdetect, Langid, Simplemma, CLD 2 and CLD 3 running over the data of Lingua's supported 75 languages. Languages that are not supported by the other detectors are simply ignored for them during the detection process.

Each of the following sections contains two plots. The bar plot shows the detailed accuracy results for each supported language. The box plot illustrates the distributions of the accuracy values for each classifier. The boxes themselves represent the areas which the middle 50 % of data lie within. Within the colored boxes, the horizontal lines mark the median of the distributions.

5.1 Single word detection


Single Word Detection Performance
Bar plot Single Word Detection Performance



5.2 Word pair detection


Word Pair Detection Performance
Bar plot Word Pair Detection Performance



5.3 Sentence detection


Sentence Detection Performance
Bar plot Sentence Detection Performance



5.4 Average detection


Average Detection Performance
Bar plot Average Detection Performance



5.5 Mean, median and standard deviation

The table below shows detailed statistics for each language and classifier including mean, median and standard deviation.

Open table
Language Average Single Words Word Pairs Sentences
Lingua
(high accuracy mode)
Lingua
(low accuracy mode)
Langdetect FastText FastSpell
(conservative mode)
FastSpell
(aggressive mode)
Langid   CLD3     CLD2   Simplemma Lingua
(high accuracy mode)
Lingua
(low accuracy mode)
Langdetect FastText FastSpell
(conservative mode)
FastSpell
(aggressive mode)
Langid   CLD3     CLD2   Simplemma Lingua
(high accuracy mode)
Lingua
(low accuracy mode)
Langdetect FastText FastSpell
(conservative mode)
FastSpell
(aggressive mode)
Langid   CLD3     CLD2   Simplemma Lingua
(high accuracy mode)
Lingua
(low accuracy mode)
Langdetect FastText FastSpell
(conservative mode)
FastSpell
(aggressive mode)
Langid   CLD3     CLD2   Simplemma
Afrikaans 79 64 67 36 70 73 30 55 55 - 58 38 37 11 49 50 1 22 13 - 81 62 66 23 67 74 10 46 56 - 97 93 98 74 94 95 80 98 96 -
Albanian 88 80 79 66 66 66 65 55 65 20 69 54 53 35 35 35 33 18 18 21 95 86 84 66 66 66 63 48 77 17 100 99 99 98 98 98 98 98 99 23
Arabic 98 94 97 96 96 96 91 90 67 - 96 88 94 89 89 89 84 79 19 - 99 96 98 98 98 98 90 92 82 - 100 99 100 100 100 100 98 100 99 -
Armenian 100 100 - 100 100 100 94 99 100 22 100 100 - 100 100 100 83 100 100 36 100 100 - 100 100 100 99 100 100 14 100 100 - 100 100 100 100 97 100 14
Azerbaijani 90 82 - 78 69 85 68 81 72 - 77 71 - 57 43 67 36 62 34 - 92 78 - 80 69 90 69 82 82 - 99 96 - 98 94 100 98 99 99 -
Basque 84 75 - 71 71 71 52 62 61 - 71 56 - 44 44 44 18 33 23 - 87 76 - 70 70 70 52 62 69 - 93 92 - 100 100 100 86 92 91 -
Belarusian 97 92 - 85 92 95 85 84 76 - 92 80 - 69 81 87 69 67 42 - 99 95 - 88 94 98 87 86 87 - 100 100 - 98 99 100 99 100 99 -
Bengali 100 100 100 98 98 98 92 99 63 - 100 100 100 94 94 94 92 98 19 - 100 100 100 99 99 99 88 99 69 - 100 100 100 100 100 100 97 99 99 -
Bokmal 58 50 - - 69 75 13 - - 50 39 27 - - 53 55 3 - - 15 59 47 - - 70 77 12 - - 45 77 75 - - 85 91 23 - - 90
Bosnian 35 29 - 9 54 65 5 33 19 - 29 23 - 9 54 54 2 19 4 - 35 29 - 10 64 76 4 28 15 - 41 36 - 8 44 64 8 52 36 -
Bulgarian 87 78 72 78 89 92 67 70 66 68 70 56 51 56 80 83 46 45 32 44 91 81 68 81 88 95 62 66 72 67 99 96 96 99 98 99 93 98 93 91
Catalan 70 58 54 57 63 66 38 48 38 59 51 33 25 33 42 44 5 19 4 32 74 60 51 57 63 67 29 42 30 62 87 82 86 83 85 88 81 84 79 81
Chinese 100 100 64 71 71 71 96 92 33 - 100 100 39 46 46 46 90 92 - - 100 100 56 68 68 68 97 83 2 - 100 100 97 100 100 100 100 100 98 -
Croatian 73 60 73 47 72 81 48 42 51 - 53 36 49 28 62 64 16 26 34 - 74 57 72 42 79 87 38 42 47 - 90 86 97 72 76 93 90 58 73 -
Czech 80 71 71 76 76 80 66 64 74 50 66 54 52 58 61 64 44 39 50 31 84 72 73 79 78 83 69 65 80 44 91 87 88 92 88 92 86 88 91 76
Danish 81 70 70 62 76 78 60 58 59 50 61 45 50 35 56 58 33 26 27 20 84 70 68 57 75 78 61 54 56 47 98 95 93 95 98 99 86 95 94 83
Dutch 77 64 58 78 71 78 64 58 47 58 55 36 27 55 46 55 34 29 11 32 81 61 49 81 70 81 61 47 42 50 96 94 98 100 97 99 98 97 90 92
English 81 63 60 96 96 96 85 54 56 65 55 29 22 90 90 90 84 22 12 27 89 62 58 98 98 98 71 44 55 69 99 97 99 100 100 100 99 97 100 98
Esperanto 84 66 - 76 76 76 44 57 50 - 67 44 - 51 51 51 5 22 7 - 85 61 - 79 79 79 30 51 46 - 98 93 - 100 100 100 96 98 98 -
Estonian 92 83 83 73 73 73 67 70 65 71 80 62 62 50 50 50 37 41 24 44 96 88 87 73 73 73 67 69 73 70 100 99 100 96 97 97 98 99 99 97
Finnish 96 91 93 92 93 93 83 80 77 76 90 77 84 82 82 82 62 58 44 47 98 95 95 96 96 96 88 84 89 81 100 100 100 100 100 100 100 99 98 100
French 89 77 75 83 83 83 71 55 46 65 74 52 48 62 62 62 42 22 12 34 94 83 78 86 86 86 74 49 48 68 99 98 99 99 99 99 98 94 80 94
Ganda 91 84 - - - - - - 61 - 79 65 - - - - - - 23 - 95 87 - - - - - - 62 - 100 100 - - - - - - 99 -
Georgian 100 100 - 99 99 99 99 98 100 4 100 100 - 97 97 97 97 99 100 11 100 100 - 99 99 99 100 100 100 2 100 100 - 100 100 100 100 96 100 0
German 89 80 73 89 89 89 81 66 64 72 74 57 49 76 76 76 61 40 27 38 94 84 70 93 93 93 81 62 66 78 100 99 100 100 100 100 100 98 98 99
Greek 100 100 100 99 99 99 100 100 100 75 100 100 100 98 98 98 100 100 100 74 100 100 100 100 100 100 100 100 100 60 100 100 100 100 100 100 100 100 100 92
Gujarati 100 100 100 100 100 100 100 100 100 - 100 100 100 99 99 99 100 99 100 - 100 100 100 100 100 100 100 100 100 - 100 100 100 100 100 100 100 100 100 -
Hebrew 100 100 100 100 100 100 100 - - - 100 100 100 99 99 99 100 - - - 100 100 100 100 100 100 100 - - - 100 100 100 100 100 100 100 - - -
Hindi 73 33 68 87 72 88 60 58 77 5 61 11 44 74 53 77 41 34 56 2 64 20 60 88 65 89 47 45 76 4 94 67 99 99 96 99 92 95 99 11
Hungarian 95 90 88 92 92 92 83 76 75 72 87 77 73 80 80 80 64 53 41 58 98 94 91 96 96 96 86 76 85 62 100 100 100 100 100 100 100 99 100 95
Icelandic 93 88 - 65 70 71 66 71 66 64 83 72 - 39 49 50 33 42 26 43 97 92 - 57 64 65 66 70 73 59 100 99 - 98 99 99 99 99 99 90
Indonesian 61 47 80 69 68 77 51 46 62 26 39 25 56 43 52 56 16 26 36 20 61 46 84 68 73 82 54 45 63 26 83 71 100 95 78 93 82 66 88 32
Irish 91 85 - 60 66 69 63 67 66 77 82 70 - 35 41 47 28 42 29 66 94 90 - 57 66 68 64 66 78 76 96 95 - 89 93 93 97 94 92 90
Italian 87 71 77 89 89 89 66 62 44 58 69 42 50 74 74 74 28 31 7 24 92 74 81 92 92 92 70 57 32 57 100 98 99 100 100 100 100 98 93 94
Japanese 100 100 100 87 87 87 86 98 33 - 100 100 99 72 72 72 61 97 - - 100 100 100 89 89 89 96 96 - - 100 100 100 100 100 100 100 100 100 -
Kazakh 96 94 - 88 76 91 80 82 77 - 89 88 - 72 52 79 67 62 43 - 98 94 - 90 80 94 78 83 88 - 100 100 - 100 96 100 96 99 99 -
Korean 100 100 100 99 99 99 100 99 100 - 100 100 100 98 98 98 100 100 100 - 100 100 100 100 100 100 100 100 100 - 100 100 100 100 100 100 100 98 100 -
Latin 87 73 - 50 50 50 21 62 46 63 72 49 - 24 24 24 - 44 9 33 93 76 - 41 41 41 2 58 42 63 97 94 - 85 86 86 61 83 88 93
Latvian 93 87 89 82 82 84 83 75 72 45 85 75 76 65 66 69 64 51 33 36 97 90 92 83 84 86 86 77 84 33 99 97 99 97 97 98 98 98 98 65
Lithuanian 95 87 87 81 81 81 80 72 70 66 86 76 71 61 61 61 58 42 30 50 98 89 91 83 83 83 85 75 82 62 100 98 100 99 99 99 99 99 99 88
Macedonian 84 72 86 74 86 93 51 60 60 13 66 52 71 51 77 83 15 30 27 12 86 70 88 72 83 96 44 54 70 11 99 95 100 100 97 99 94 97 84 15
Malay 31 31 - 15 39 52 11 22 18 13 26 22 - 14 36 38 2 11 9 3 38 36 - 19 52 64 9 22 22 10 28 35 - 12 29 54 22 34 23 26
Maori 92 83 - - - - - 52 61 - 84 64 - - - - - 22 12 - 92 88 - - - - - 43 72 - 99 98 - - - - - 91 98 -
Marathi 85 39 88 80 8 75 80 84 83 - 74 16 77 61 9 61 70 69 65 - 85 30 89 81 15 69 79 84 86 - 96 72 98 99 1 95 91 98 99 -
Mongolian 97 95 - 81 85 89 86 83 78 - 92 88 - 59 66 72 68 63 43 - 99 98 - 86 91 94 90 87 92 - 99 99 - 98 99 100 99 99 100 -
Nynorsk 66 52 - 29 63 70 32 - 54 24 41 25 - 8 42 43 5 - 18 6 66 49 - 18 58 70 16 - 50 22 91 81 - 61 87 96 75 - 93 45
Persian 90 80 81 90 79 92 92 76 61 12 78 62 64 79 57 84 83 57 13 12 94 80 80 92 81 94 94 70 72 5 100 98 100 100 98 99 100 99 99 18
Polish 95 90 89 92 92 92 89 77 75 86 85 77 74 80 80 80 73 51 38 72 98 93 93 97 97 97 93 80 87 87 100 99 100 100 100 100 100 99 99 99
Portuguese 81 69 60 73 81 84 54 53 54 61 59 42 29 47 66 67 19 21 20 26 85 70 54 71 81 85 44 40 48 60 99 95 98 99 96 99 98 97 94 97
Punjabi 100 100 100 100 100 100 100 100 100 - 100 100 100 99 99 99 100 99 100 - 100 100 100 100 100 100 100 100 100 - 100 100 100 100 100 100 100 100 100 -
Romanian 87 72 77 64 64 64 61 53 54 57 69 49 56 38 38 38 31 24 11 34 92 74 79 60 60 60 60 48 53 51 99 94 97 95 95 95 92 88 96 86
Russian 90 78 84 94 94 97 75 71 60 66 76 59 70 86 88 92 60 48 26 54 95 84 87 98 97 99 75 72 68 62 98 92 96 100 98 99 91 93 87 83
Serbian 88 78 - 76 53 76 64 78 69 - 74 62 - 54 47 54 39 63 29 - 90 80 - 76 58 76 63 75 78 - 99 92 - 98 52 98 89 95 99 -
Shona 91 81 - - - - - 76 65 - 78 56 - - - - - 51 24 - 96 86 - - - - - 79 71 - 100 100 - - - - - 99 99 -
Slovak 84 75 74 65 80 83 68 63 71 68 64 49 50 41 63 64 40 32 38 45 90 78 75 62 81 86 66 61 76 66 99 97 98 91 97 98 97 96 99 93
Slovene 82 67 73 59 75 77 63 63 48 72 61 39 48 32 56 57 33 29 8 48 87 68 72 54 74 78 61 60 42 72 99 93 98 90 96 97 95 99 92 96
Somali 92 85 90 24 51 52 - 69 70 - 82 64 76 4 18 20 - 38 27 - 96 90 95 15 46 48 - 70 83 - 100 100 100 52 89 89 - 100 99 -
Sotho 86 72 - - - - - 49 54 - 67 43 - - - - - 15 13 - 90 75 - - - - - 33 54 - 100 97 - - - - - 98 95 -
Spanish 70 56 56 74 64 73 65 48 43 50 44 26 25 51 48 52 37 16 12 16 69 49 46 72 60 74 59 32 34 41 97 94 98 100 85 94 98 96 85 92
Swahili 81 70 73 41 41 41 42 57 57 46 60 43 47 7 7 7 3 25 16 26 84 68 74 24 24 24 24 49 59 41 98 97 99 92 92 92 98 98 97 72
Swedish 84 72 68 76 79 81 65 61 53 59 64 46 40 51 57 59 35 30 14 29 88 76 67 78 82 85 63 56 52 62 99 94 96 98 98 99 96 96 93 87
Tagalog 78 66 76 45 46 46 42 - 50 12 52 36 51 11 11 11 2 - 9 9 83 67 78 28 28 28 26 - 44 11 98 96 99 98 98 98 98 - 95 15
Tamil 100 100 100 100 100 100 100 100 100 - 100 100 100 100 100 100 100 100 100 - 100 100 100 100 100 100 100 100 100 - 100 100 100 100 100 100 100 99 100 -
Telugu 100 100 100 100 100 100 100 99 100 - 100 100 100 100 100 100 100 99 100 - 100 100 100 100 100 100 100 100 100 - 100 100 100 100 100 100 100 99 100 -
Thai 100 100 100 100 100 100 100 99 100 - 100 100 100 100 100 100 100 100 100 - 100 100 100 100 100 100 100 100 100 - 100 100 100 100 100 100 100 98 100 -
Tsonga 84 72 - - - - - - 61 - 66 46 - - - - - - 19 - 89 73 - - - - - - 68 - 98 97 - - - - - - 97 -
Tswana 84 71 - - - - - - 56 - 65 44 - - - - - - 17 - 88 73 - - - - - - 57 - 99 96 - - - - - - 94 -
Turkish 94 87 82 86 86 86 67 69 66 76 84 71 63 70 70 70 50 41 30 55 98 91 84 88 88 88 67 70 71 78 100 100 100 100 100 100 84 97 97 96
Ukrainian 92 86 83 91 95 98 76 81 77 78 84 75 66 78 90 94 54 62 46 62 97 92 84 94 95 98 77 83 88 75 95 93 98 100 100 100 96 98 99 97
Urdu 90 79 83 63 75 80 58 61 61 - 80 65 67 40 59 68 30 39 8 - 94 78 83 50 68 74 46 53 75 - 96 94 97 99 99 99 99 92 99 -
Vietnamese 91 87 93 89 89 89 86 66 63 - 79 76 81 71 71 71 65 26 - - 94 87 98 97 97 97 93 74 90 - 99 98 100 100 100 100 100 99 100 -
Welsh 91 82 85 64 69 72 49 69 72 69 78 61 69 35 41 46 11 43 34 58 96 87 88 61 71 74 39 66 85 60 99 99 99 96 96 97 95 98 98 90
Xhosa 82 69 - - - - 53 66 71 - 64 45 - - - - 13 40 45 - 85 67 - - - - 49 65 71 - 98 94 - - - - 96 92 97 -
Yoruba 74 62 - 8 8 8 - 15 37 - 50 33 - 1 1 1 - 5 1 - 77 61 - 1 1 1 - 11 22 - 96 92 - 21 22 22 - 28 88 -
Zulu 81 70 - - - - 6 63 54 - 62 45 - - - - 0 35 18 - 83 72 - - - - 6 63 51 - 97 94 - - - - 11 92 93 -
Mean 86 78 82 74 77 81 68 69 65 52 74 61 65 58 62 66 48 48 34 34 89 78 82 74 77 82 65 67 68 50 96 93 98 92 91 96 90 93 94 73
Median 89.0 79.0 82.5 78.0 79.0 83.0 67.0 68.0 63.0 59.0 74.0 57.0 63.5 57.5 61.0 67.0 41.5 41.0 26.5 33.0 94.0 81.0 84.0 81.0 81.0 86.0 67.0 66.0 71.5 60.0 99.0 97.0 99.0 99.0 98.0 99.0 98.0 98.0 98.0 90.0
Standard Deviation 13.12 17.34 13.43 23.07 19.9 17.0 24.61 19.04 18.57 23.46 18.48 25.01 23.72 28.52 25.31 24.22 32.33 27.86 28.74 18.94 13.14 18.95 15.64 26.45 21.67 19.67 28.5 21.83 22.7 24.48 11.05 11.91 2.78 19.46 19.1 11.78 20.21 13.95 12.25 31.91

6. How fast is it?

The accuracy reporter script measures the time each language detector needs to classify 3000 input texts for each of the supported 75 languages. The results below have been produced on an iMac 3.6 Ghz 8-Core Intel Core i9 with 40 GB RAM.

Lingua in multi-threaded mode is one of the fastest algorithms in this comparison. CLD 2, CLD 3 and fasttext are similarly fast as they have been implemented in C or C++. Pure Python libraries such as Simplemma, Langid or Langdetect a significantly slower.

Detector Time
Lingua (low accuracy mode, multi-threaded) 3.00 sec
Lingua (high accuracy mode, multi-threaded) 7.97 sec
CLD 2 8.65 sec
fastText 10.50 sec
CLD 3 16.77 sec
Lingua (low accuracy mode, single-threaded) 20.46 sec
Lingua (high accuracy mode, single-threaded) 51.88 sec
FastSpell (aggressive mode) 51.92 sec
FastSpell (conservative mode) 52.32 sec
Simplemma 2 min 36.44 sec
Langid 3 min 50.40 sec
Langdetect 10 min 43.96 sec

7. Why is it better than other libraries?

Every language detector uses a probabilistic n-gram model trained on the character distribution in some training corpus. Most libraries only use n-grams of size 3 (trigrams) which is satisfactory for detecting the language of longer text fragments consisting of multiple sentences. For short phrases or single words, however, trigrams are not enough. The shorter the input text is, the less n-grams are available. The probabilities estimated from such few n-grams are not reliable. This is why Lingua makes use of n-grams of sizes 1 up to 5 which results in much more accurate prediction of the correct language.

A second important difference is that Lingua does not only use such a statistical model, but also a rule-based engine. This engine first determines the alphabet of the input text and searches for characters which are unique in one or more languages. If exactly one language can be reliably chosen this way, the statistical model is not necessary anymore. In any case, the rule-based engine filters out languages that do not satisfy the conditions of the input text. Only then, in a second step, the probabilistic n-gram model is taken into consideration. This makes sense because loading less language models means less memory consumption and better runtime performance.

In general, it is always a good idea to restrict the set of languages to be considered in the classification process using the respective api methods. If you know beforehand that certain languages are never to occur in an input text, do not let those take part in the classifcation process. The filtering mechanism of the rule-based engine is quite good, however, filtering based on your own knowledge of the input text is always preferable.

8. Test report generation

If you want to reproduce the accuracy results above, you can generate the test reports yourself for all classifiers and languages by installing Poetry and executing:

poetry install --no-root --only script
poetry run python3 scripts/accuracy_reporter.py

For each detector and language, a test report file is then written into /accuracy-reports. As an example, here is the current output of the Lingua German report:

##### German #####

>>> Accuracy on average: 89.27%

>> Detection of 1000 single words (average length: 9 chars)
Accuracy: 74.20%
Erroneously classified as Dutch: 2.30%, Danish: 2.20%, English: 2.20%, Latin: 1.80%, Bokmal: 1.60%, Italian: 1.30%, Basque: 1.20%, Esperanto: 1.20%, French: 1.20%, Swedish: 0.90%, Afrikaans: 0.70%, Finnish: 0.60%, Nynorsk: 0.60%, Portuguese: 0.60%, Yoruba: 0.60%, Sotho: 0.50%, Tsonga: 0.50%, Welsh: 0.50%, Estonian: 0.40%, Irish: 0.40%, Polish: 0.40%, Spanish: 0.40%, Tswana: 0.40%, Albanian: 0.30%, Icelandic: 0.30%, Tagalog: 0.30%, Bosnian: 0.20%, Catalan: 0.20%, Croatian: 0.20%, Indonesian: 0.20%, Lithuanian: 0.20%, Romanian: 0.20%, Swahili: 0.20%, Zulu: 0.20%, Latvian: 0.10%, Malay: 0.10%, Maori: 0.10%, Slovak: 0.10%, Slovene: 0.10%, Somali: 0.10%, Turkish: 0.10%, Xhosa: 0.10%

>> Detection of 1000 word pairs (average length: 18 chars)
Accuracy: 93.90%
Erroneously classified as Dutch: 0.90%, Latin: 0.90%, English: 0.70%, Swedish: 0.60%, Danish: 0.50%, French: 0.40%, Bokmal: 0.30%, Irish: 0.20%, Tagalog: 0.20%, Tsonga: 0.20%, Afrikaans: 0.10%, Esperanto: 0.10%, Estonian: 0.10%, Finnish: 0.10%, Italian: 0.10%, Maori: 0.10%, Nynorsk: 0.10%, Somali: 0.10%, Swahili: 0.10%, Turkish: 0.10%, Welsh: 0.10%, Zulu: 0.10%

>> Detection of 1000 sentences (average length: 111 chars)
Accuracy: 99.70%
Erroneously classified as Dutch: 0.20%, Latin: 0.10%

9. How to add it to your project?

Lingua is available in the Python Package Index and can be installed with:

pip install lingua-language-detector

10. How to build?

Lingua requires Python >= 3.8. First create a virtualenv and install the Python wheel for your platform with pip.

git clone https://github.com/pemistahl/lingua-py.git
cd lingua-py
python3 -m venv .venv
source .venv/bin/activate
pip install --find-links=lingua lingua-language-detector

In the scripts directory, there are Python scripts for writing accuracy reports, drawing plots and writing accuracy values in an HTML table. The dependencies for these scripts are managed by Poetry which you need to install if you have not done so yet. In order to install the script dependencies in your virtualenv, run

poetry install --no-root --only script

The project makes uses of type annotations which allow for static type checking with Mypy. Run the following commands for checking the types:

poetry install --no-root --only dev
poetry run mypy

The Python source code is formatted with Black:

poetry run black .

11. How to use?

11.1 Basic usage

>>> from lingua import Language, LanguageDetectorBuilder
>>> languages = [Language.ENGLISH, Language.FRENCH, Language.GERMAN, Language.SPANISH]
>>> detector = LanguageDetectorBuilder.from_languages(*languages).build()
>>> language = detector.detect_language_of("languages are awesome")
>>> language
Language.ENGLISH
>>> language.iso_code_639_1
IsoCode639_1.EN
>>> language.iso_code_639_1.name
'EN'
>>> language.iso_code_639_3
IsoCode639_3.ENG
>>> language.iso_code_639_3.name
'ENG'

11.2 Minimum relative distance

By default, Lingua returns the most likely language for a given input text. However, there are certain words that are spelled the same in more than one language. The word prologue, for instance, is both a valid English and French word. Lingua would output either English or French which might be wrong in the given context. For cases like that, it is possible to specify a minimum relative distance that the logarithmized and summed up probabilities for each possible language have to satisfy. It can be stated in the following way:

>>> from lingua import Language, LanguageDetectorBuilder
>>> languages = [Language.ENGLISH, Language.FRENCH, Language.GERMAN, Language.SPANISH]
>>> detector = LanguageDetectorBuilder.from_languages(*languages)\
.with_minimum_relative_distance(0.9)\
.build()
>>> print(detector.detect_language_of("languages are awesome"))
None

Be aware that the distance between the language probabilities is dependent on the length of the input text. The longer the input text, the larger the distance between the languages. So if you want to classify very short text phrases, do not set the minimum relative distance too high. Otherwise, None will be returned most of the time as in the example above. This is the return value for cases where language detection is not reliably possible.

11.3 Confidence values

Knowing about the most likely language is nice but how reliable is the computed likelihood? And how less likely are the other examined languages in comparison to the most likely one? These questions can be answered as well:

>>> from lingua import Language, LanguageDetectorBuilder
>>> languages = [Language.ENGLISH, Language.FRENCH, Language.GERMAN, Language.SPANISH]
>>> detector = LanguageDetectorBuilder.from_languages(*languages).build()
>>> confidence_values = detector.compute_language_confidence_values("languages are awesome")
>>> for confidence in confidence_values:
...     print(f"{confidence.language.name}: {confidence.value:.2f}")
ENGLISH: 0.93
FRENCH: 0.04
GERMAN: 0.02
SPANISH: 0.01

In the example above, a list is returned containing those languages which the calling instance of LanguageDetector has been built from, sorted by their confidence value in descending order. Each value is a probability between 0.0 and 1.0. The probabilities of all languages will sum to 1.0. If the language is unambiguously identified by the rule engine, the value 1.0 will always be returned for this language. The other languages will receive a value of 0.0.

There is also a method for returning the confidence value for one specific language only:

>>> from lingua import Language, LanguageDetectorBuilder
>>> languages = [Language.ENGLISH, Language.FRENCH, Language.GERMAN, Language.SPANISH]
>>> detector = LanguageDetectorBuilder.from_languages(*languages).build()
>>> confidence_value = detector.compute_language_confidence("languages are awesome", Language.FRENCH)
>>> print(f"{confidence_value:.2f}")
0.04

The value that this method computes is a number between 0.0 and 1.0. If the language is unambiguously identified by the rule engine, the value 1.0 will always be returned. If the given language is not supported by this detector instance, the value 0.0 will always be returned.

11.4 Eager loading versus lazy loading

By default, Lingua uses lazy-loading to load only those language models on demand which are considered relevant by the rule-based filter engine. For web services, for instance, it is rather beneficial to preload all language models into memory to avoid unexpected latency while waiting for the service response. If you want to enable the eager-loading mode, you can do it like this:

LanguageDetectorBuilder.from_all_languages().with_preloaded_language_models().build()

Multiple instances of LanguageDetector share the same language models in memory which are accessed asynchronously by the instances.

11.5 Low accuracy mode versus high accuracy mode

Lingua's high detection accuracy comes at the cost of being noticeably slower than other language detectors. The large language models also consume significant amounts of memory. These requirements might not be feasible for systems running low on resources. If you want to classify mostly long texts or need to save resources, you can enable a low accuracy mode that loads only a small subset of the language models into memory:

LanguageDetectorBuilder.from_all_languages().with_low_accuracy_mode().build()

The downside of this approach is that detection accuracy for short texts consisting of less than 120 characters will drop significantly. However, detection accuracy for texts which are longer than 120 characters will remain mostly unaffected.

In high accuracy mode (the default), the language detector consumes approximately 1 GB of memory if all language models are loaded. In low accuracy mode, memory consumption is reduced to approximately 103 MB.

An alternative for a smaller memory footprint and faster performance is to reduce the set of languages when building the language detector. In most cases, it is not advisable to build the detector from all supported languages. When you have knowledge about the texts you want to classify you can almost always rule out certain languages as impossible or unlikely to occur.

11.6 Detection of multiple languages in mixed-language texts

In contrast to most other language detectors, Lingua is able to detect multiple languages in mixed-language texts. This feature can yield quite reasonable results but it is still in an experimental state and therefore the detection result is highly dependent on the input text. It works best in high-accuracy mode with multiple long words for each language. The shorter the phrases and their words are, the less accurate are the results. Reducing the set of languages when building the language detector can also improve accuracy for this task if the languages occurring in the text are equal to the languages supported by the respective language detector instance.

>>> from lingua import Language, LanguageDetectorBuilder
>>> languages = [Language.ENGLISH, Language.FRENCH, Language.GERMAN]
>>> detector = LanguageDetectorBuilder.from_languages(*languages).build()
>>> sentence = "Parlez-vous français? " + \
...            "Ich spreche Französisch nur ein bisschen. " + \
...            "A little bit is better than nothing."
>>> for result in detector.detect_multiple_languages_of(sentence):
...     print(f"{result.language.name}: '{sentence[result.start_index:result.end_index]}'")
FRENCH: 'Parlez-vous français? '
GERMAN: 'Ich spreche Französisch nur ein bisschen. '
ENGLISH: 'A little bit is better than nothing.'

In the example above, a list of DetectionResult is returned. Each entry in the list describes a contiguous single-language text section, providing start and end indices of the respective substring.

11.7 Single-threaded versus multi-threaded language detection

The LanguageDetector methods explained above all operate in a single thread. If you want to classify a very large set of texts, you will probably want to use all available CPU cores efficiently in multiple threads for maximum performance.

Every single-threaded method has a multi-threaded equivalent that accepts a list of texts and returns a list of results.

Single-threaded Multi-threaded
detect_language_of detect_languages_in_parallel_of
detect_multiple_languages_of detect_multiple_languages_in_parallel_of
compute_language_confidence_values compute_language_confidence_values_in_parallel
compute_language_confidence compute_language_confidence_in_parallel

11.8 Methods to build the LanguageDetector

There might be classification tasks where you know beforehand that your language data is definitely not written in Latin, for instance. The detection accuracy can become better in such cases if you exclude certain languages from the decision process or just explicitly include relevant languages:

from lingua import LanguageDetectorBuilder, Language, IsoCode639_1, IsoCode639_3

# Include all languages available in the library.
LanguageDetectorBuilder.from_all_languages()

# Include only languages that are not yet extinct (= currently excludes Latin).
LanguageDetectorBuilder.from_all_spoken_languages()

# Include only languages written with Cyrillic script.
LanguageDetectorBuilder.from_all_languages_with_cyrillic_script()

# Exclude only the Spanish language from the decision algorithm.
LanguageDetectorBuilder.from_all_languages_without(Language.SPANISH)

# Only decide between English and German.
LanguageDetectorBuilder.from_languages(Language.ENGLISH, Language.GERMAN)

# Select languages by ISO 639-1 code.
LanguageDetectorBuilder.from_iso_codes_639_1(IsoCode639_1.EN, IsoCode639_1.DE)

# Select languages by ISO 639-3 code.
LanguageDetectorBuilder.from_iso_codes_639_3(IsoCode639_3.ENG, IsoCode639_3.DEU)

12. What's next for version 2.1.0?

Take a look at the planned issues.

13. Contributions

Any contributions to Lingua are very much appreciated. Please read the instructions in CONTRIBUTING.md in the repository of the Rust implementation for how to add new languages to the library.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

lingua_language_detector-2.0.2-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl (74.7 MB view details)

Uploaded PyPy musllinux: musl 1.2+ x86-64

lingua_language_detector-2.0.2-pp310-pypy310_pp73-musllinux_1_2_i686.whl (74.6 MB view details)

Uploaded PyPy musllinux: musl 1.2+ i686

lingua_language_detector-2.0.2-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl (74.6 MB view details)

Uploaded PyPy musllinux: musl 1.2+ ARM64

lingua_language_detector-2.0.2-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl (74.7 MB view details)

Uploaded PyPy musllinux: musl 1.2+ x86-64

lingua_language_detector-2.0.2-pp39-pypy39_pp73-musllinux_1_2_i686.whl (74.6 MB view details)

Uploaded PyPy musllinux: musl 1.2+ i686

lingua_language_detector-2.0.2-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl (74.6 MB view details)

Uploaded PyPy musllinux: musl 1.2+ ARM64

lingua_language_detector-2.0.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl (74.1 MB view details)

Uploaded PyPy macOS 11.0+ ARM64

lingua_language_detector-2.0.2-pp39-pypy39_pp73-macosx_10_7_x86_64.whl (73.6 MB view details)

Uploaded PyPy macOS 10.7+ x86-64

lingua_language_detector-2.0.2-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl (74.7 MB view details)

Uploaded PyPy musllinux: musl 1.2+ x86-64

lingua_language_detector-2.0.2-pp38-pypy38_pp73-musllinux_1_2_i686.whl (74.6 MB view details)

Uploaded PyPy musllinux: musl 1.2+ i686

lingua_language_detector-2.0.2-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl (74.6 MB view details)

Uploaded PyPy musllinux: musl 1.2+ ARM64

lingua_language_detector-2.0.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl (74.1 MB view details)

Uploaded PyPy macOS 11.0+ ARM64

lingua_language_detector-2.0.2-pp38-pypy38_pp73-macosx_10_7_x86_64.whl (73.6 MB view details)

Uploaded PyPy macOS 10.7+ x86-64

lingua_language_detector-2.0.2-cp312-none-win_amd64.whl (73.3 MB view details)

Uploaded CPython 3.12 Windows x86-64

lingua_language_detector-2.0.2-cp312-none-win32.whl (73.2 MB view details)

Uploaded CPython 3.12 Windows x86

lingua_language_detector-2.0.2-cp312-cp312-musllinux_1_2_x86_64.whl (74.7 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ x86-64

lingua_language_detector-2.0.2-cp312-cp312-musllinux_1_2_i686.whl (74.6 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ i686

lingua_language_detector-2.0.2-cp312-cp312-musllinux_1_2_aarch64.whl (74.6 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ ARM64

lingua_language_detector-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (74.7 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

lingua_language_detector-2.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (74.7 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

lingua_language_detector-2.0.2-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl (74.7 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.12+ i686

lingua_language_detector-2.0.2-cp312-cp312-macosx_11_0_arm64.whl (74.1 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

lingua_language_detector-2.0.2-cp312-cp312-macosx_10_7_x86_64.whl (73.6 MB view details)

Uploaded CPython 3.12 macOS 10.7+ x86-64

lingua_language_detector-2.0.2-cp311-none-win_amd64.whl (73.3 MB view details)

Uploaded CPython 3.11 Windows x86-64

lingua_language_detector-2.0.2-cp311-none-win32.whl (73.2 MB view details)

Uploaded CPython 3.11 Windows x86

lingua_language_detector-2.0.2-cp311-cp311-musllinux_1_2_x86_64.whl (74.7 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

lingua_language_detector-2.0.2-cp311-cp311-musllinux_1_2_i686.whl (74.6 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ i686

lingua_language_detector-2.0.2-cp311-cp311-musllinux_1_2_aarch64.whl (74.6 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ ARM64

lingua_language_detector-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (74.7 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

lingua_language_detector-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (74.7 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

lingua_language_detector-2.0.2-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl (74.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.12+ i686

lingua_language_detector-2.0.2-cp311-cp311-macosx_11_0_arm64.whl (74.1 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

lingua_language_detector-2.0.2-cp311-cp311-macosx_10_7_x86_64.whl (73.6 MB view details)

Uploaded CPython 3.11 macOS 10.7+ x86-64

lingua_language_detector-2.0.2-cp310-none-win_amd64.whl (73.3 MB view details)

Uploaded CPython 3.10 Windows x86-64

lingua_language_detector-2.0.2-cp310-none-win32.whl (73.2 MB view details)

Uploaded CPython 3.10 Windows x86

lingua_language_detector-2.0.2-cp310-cp310-musllinux_1_2_x86_64.whl (74.7 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ x86-64

lingua_language_detector-2.0.2-cp310-cp310-musllinux_1_2_i686.whl (74.6 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ i686

lingua_language_detector-2.0.2-cp310-cp310-musllinux_1_2_aarch64.whl (74.6 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ ARM64

lingua_language_detector-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (74.7 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

lingua_language_detector-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (74.7 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

lingua_language_detector-2.0.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl (74.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ i686

lingua_language_detector-2.0.2-cp310-cp310-macosx_11_0_arm64.whl (74.1 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

lingua_language_detector-2.0.2-cp310-cp310-macosx_10_7_x86_64.whl (73.6 MB view details)

Uploaded CPython 3.10 macOS 10.7+ x86-64

lingua_language_detector-2.0.2-cp39-none-win_amd64.whl (73.3 MB view details)

Uploaded CPython 3.9 Windows x86-64

lingua_language_detector-2.0.2-cp39-none-win32.whl (73.2 MB view details)

Uploaded CPython 3.9 Windows x86

lingua_language_detector-2.0.2-cp39-cp39-musllinux_1_2_x86_64.whl (74.7 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ x86-64

lingua_language_detector-2.0.2-cp39-cp39-musllinux_1_2_i686.whl (74.6 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ i686

lingua_language_detector-2.0.2-cp39-cp39-musllinux_1_2_aarch64.whl (74.6 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ ARM64

lingua_language_detector-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (74.7 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

lingua_language_detector-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (74.7 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

lingua_language_detector-2.0.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl (74.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686

lingua_language_detector-2.0.2-cp39-cp39-macosx_11_0_arm64.whl (74.1 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

lingua_language_detector-2.0.2-cp39-cp39-macosx_10_7_x86_64.whl (73.6 MB view details)

Uploaded CPython 3.9 macOS 10.7+ x86-64

lingua_language_detector-2.0.2-cp38-none-win_amd64.whl (73.3 MB view details)

Uploaded CPython 3.8 Windows x86-64

lingua_language_detector-2.0.2-cp38-none-win32.whl (73.2 MB view details)

Uploaded CPython 3.8 Windows x86

lingua_language_detector-2.0.2-cp38-cp38-musllinux_1_2_x86_64.whl (74.7 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ x86-64

lingua_language_detector-2.0.2-cp38-cp38-musllinux_1_2_i686.whl (74.6 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ i686

lingua_language_detector-2.0.2-cp38-cp38-musllinux_1_2_aarch64.whl (74.6 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ ARM64

lingua_language_detector-2.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (74.7 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

lingua_language_detector-2.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (74.7 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

lingua_language_detector-2.0.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl (74.8 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686

lingua_language_detector-2.0.2-cp38-cp38-macosx_11_0_arm64.whl (74.1 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

lingua_language_detector-2.0.2-cp38-cp38-macosx_10_7_x86_64.whl (73.6 MB view details)

Uploaded CPython 3.8 macOS 10.7+ x86-64

File details

Details for the file lingua_language_detector-2.0.2-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3d2e8a34e4d9830714f1de6728eec182a36d243f038d1b7b71a29cc63408ad2d
MD5 9eb8d47107af6bea7d59b0de6490213c
BLAKE2b-256 6105a2f6200ed2fefd7d2d7f0047a22090e60444fb49bb7760a546b36420f4f6

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-pp310-pypy310_pp73-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-pp310-pypy310_pp73-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 8286b031302e32ac7a81d4f4f0a379b8ce1031422424eba3b1c8d721b956c4cb
MD5 add1d9e01c422a14d241b2c8191741d8
BLAKE2b-256 0d5c0ad7678d7c6c3020f45af22b28fc964b185a8a7c931ad6e6910af9b24bd2

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1eeb4390c7b2b570013bbcbfb2292beda4b60e6c22631b27937160814fa38f8d
MD5 7f9916b8164f0f08f9b28d267de66377
BLAKE2b-256 3c06d8b390f4cbdafedbe01f709778f97f2640d7727270f191f8d32cc1ca6315

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ccb2aa354d659abddcaa067bc403fc32549d1f531ce99b5d4d336b7c796ed111
MD5 6f39ac5af48ca5d762fe1461c2c6ca34
BLAKE2b-256 a080d578ed268f1f7dac583b5947fa32b571ccaa84ba99d3fcd9371ab097bbf9

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9eb520f8de3906db10df68c4dcd48c5ed9a3c6eb593d3d94a9875627eead010a
MD5 49872f29d149fea7ff0d0f7039b0284e
BLAKE2b-256 5e95395bd5e890ad1af2457276367cf13e1fcaec7fee1abab1d23d3c2b02aa74

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 aa499e82d66e12a242f51de51517d86e4cf0969c29379a9bae16a12853519c80
MD5 65742ea00038c50e7ab163170c73e832
BLAKE2b-256 7b16ef8283fbe2e104f5906ab1f80eb12ba4b5ae1651836c822eca0ff947fa87

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9be364224fc088cf9b0e95fbe19dcc884238f9194ffd015d223400334f7f57c7
MD5 3d0292bf9e7aff912e33ec41dc62f686
BLAKE2b-256 438df0744addc8611c971aa7cf9dee11e6eaf08accb30a3b5c69e677b07d4e13

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-pp310-pypy310_pp73-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-pp310-pypy310_pp73-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 fc6f2548fe6aa94ac0a0868cd67b468dc6b03982ecb9d6d04aeb6716d45995c2
MD5 ffc9e632998fefbdb53bb716dcdb03a1
BLAKE2b-256 99971807b00bd6aa22239992e03cd36b867f546450e6c9fe3d82651a23cc9975

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 436de99680cbe4418295f961d82958bed76c029ab10696a4c46ce0b8d33e369c
MD5 32ce341dcab4dac6446fc71b6dc4453d
BLAKE2b-256 08651f15179fae3b30cae02702711925ea67e473d371792331bafb273b794ba5

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-pp39-pypy39_pp73-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-pp39-pypy39_pp73-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 c7d1ea36a200f5d7e72eca06a3f1648dcd15fa482bf3b075ec3ef90ed57120a0
MD5 a0b78d64ece9a3c87874004e58129a1f
BLAKE2b-256 8ec45e18ec41d99ff72aa91f3b340e27894bcaf7104cff80b409b0add195ec39

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 177fd7d5073a96b885daa2059c55d19a306550fed7aadafcfd3037cd8ce44ae1
MD5 d569a755885abad4e0e3f01d16f6898f
BLAKE2b-256 6997dda265a293f2964e74463454bb527e528cba14bd2ffa64cea8f1a6f9086e

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ae33435d749478623466aa6315917432de9114226ad0faa7dc02b5bf42faae77
MD5 56f7ff159e96343457412a9044075ffa
BLAKE2b-256 6d9c88cfd5ad7e8771ac97c2b8dae9b07232f55babf3f3c6e84643b8bbfa45ae

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ac1ca58c8b273ac3ea1a0aa5dccb613c4539b1e4eaf236b565836898a70bd03d
MD5 c6580c057f77ddc0e7d11574ed9d0b93
BLAKE2b-256 24e3eb9aebd08f3c19fb27561a87d754985e662d75c6a30cb3f899a1ad03f89a

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 b4c164c7c9e0a151a986ab52668f57e3de265f0b04fb804a8ff2a5cb8a2fd83d
MD5 3a6e673c0da00344aec45bcf1c269e8e
BLAKE2b-256 64e513098be9dfc41a17b69b5e1632b996df125c9da9374045430877b1ac8467

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 796ba624c026ef978819d124d0d47685f2aeeec5b92315827187126347e7f406
MD5 446e929f5c52a94422e0a9f809f43685
BLAKE2b-256 db95355ee95f1341256995e97dc5683288b93e356e10c5cb5ee321bcfbe3ca6a

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-pp39-pypy39_pp73-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-pp39-pypy39_pp73-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 0b5415d527be8e8ef9216c8d5aab8cc8e5271361342777a39133ca7e0e5e9944
MD5 911111f4c1dccb4694c3146a038bccd9
BLAKE2b-256 92ae614ead7de2a4d6ec31868de58c3560a899ce49bb7c4387ff73c113b2c785

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 eb5dc7f0f867e52cc66b2fee861f7442f95a6be7fdca84fc375b8d57b2cae008
MD5 7beee86e632ebef135bfec4050e1cc1c
BLAKE2b-256 ad197235c62020bc7c8bcc8052ada92392756e6b1717d00f7c4b9cc84057e1ae

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-pp38-pypy38_pp73-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-pp38-pypy38_pp73-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 80eaaf6db600303665ab13c582c7818894e28270fee1e1d6af2a36ccc4d5095a
MD5 b907102d6bd448c6ba0fe1522a99232f
BLAKE2b-256 f653c6d6e146d1df276f7a4b08fbb586a04e7011edb20f3e8c71cdd70f3c1478

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9fd26d458356942db1d92b2951f9f6fa3aca0ef843a939c2cdcd8779a5148912
MD5 caa54cb93f8aa7287d6e1a52194b26ee
BLAKE2b-256 7c6d1b3922a8bbab486bd32e502e0c93f6b57f61a37c536f039e4da367aff7a5

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b4e861e49e75d37d26eb5c62c384b473d0641390b5f5f52c5ca30667b6573425
MD5 0c9f225f5245825328f61e10dd275a65
BLAKE2b-256 eaeb78f998820b061057bedd840c579ed98edee84dc49d65b56d607130bdb7de

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ade311c8f7f419e4ad79065b5d757a49550131fc3b18fccb76cb949c562e0705
MD5 b75866d32f3defc3755173568668b492
BLAKE2b-256 cd887056e536e22f4a8ff1503a7c58a50def44c54d7643fc2c0a06b2375af8b0

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 d4115466f8dc4e63b6dc71fdd17ac39bc5ab334a0f2567237cff5a9f7515655c
MD5 6ccd420306f3ba9455dba1ab38307703
BLAKE2b-256 177240c76ea3ad5890e2cb912013d5e22fd2fe0ca0dd9f16667d3b963e081356

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9d26936378cf2d8c081be332f60d5b1b7e6ead66986cff85df00105f146f8aa2
MD5 4e073ea91cbd8d0ed9301e9e6b7ca967
BLAKE2b-256 69144c9718fe23f8f49e91d30a69f1869da845cb2df8d626f1911c21373d0d55

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-pp38-pypy38_pp73-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-pp38-pypy38_pp73-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 d012d95f863c627d4a57a69084ec768a7add7d8ca5f87eb0b51b05d7f4b17232
MD5 99b796f962ea01fcf2400c5884215542
BLAKE2b-256 1553ea5a5bf35a80428051f8117960a10386c9098069f4c032d2bd1a967a5cc2

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp312-none-win_amd64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 72866175ff3d78b3d9244932ffbbb731471bca3758a2a825c60331ecdfb10851
MD5 69aabf5845c70e0dc3a549e49f988c2a
BLAKE2b-256 6c80d3dcbdcde9012b2e0b29374aee89e55159e528a9590d380ae85381588fb8

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp312-none-win32.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp312-none-win32.whl
Algorithm Hash digest
SHA256 9a256aadabf76a915910dd430724592f417942a443dc980a325a154c3f93f547
MD5 422fa5f6ad5074302f0e2fbc7ecf66a4
BLAKE2b-256 a32ad4b0df117a457a5953926299b02b64ee3337cfa31dcc85a7ee968dee8a56

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9012c74eea7d07c63c47fceaa3a6bc1e216954107b08beb421b64c717912be0d
MD5 291b3f8639bbf3900cfcc422eb9348fe
BLAKE2b-256 3106aa8f42beefe7601343349ab2815c07d07e40f4348d482eec7b581553f8d0

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 5fcc06b49c65cf6083afc7b6bd6ea26a43da8107d849842e4647a19c0ce68f66
MD5 18dd078e37359017bce57ca55d5f5a64
BLAKE2b-256 945521540e557afbf1111b7dba64d8d5d9de4faa285f61e17e71bf3507262fcc

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 652936f5e109784528f643062c704ad02572994cf05cfb7c609f96f0ae6259ed
MD5 076085f4be8f8ce7a67c8f11f3261981
BLAKE2b-256 116921eca49d91a8a0828c80991ff44de88d87c017ec010d2966e8628ad5e849

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f1571a68601a60b3eaf246ce9c2ad7b9d515609116f3a01c7536f20e2f9e7437
MD5 f8f35641594fe38a38072448fe886062
BLAKE2b-256 3ebb636205c1f3395481a364c47cc2e825d220165b0f9ebe0f9b4afa1eb539d9

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ed54511cc9e4bb721c7f0530870494918985fabf3a30c1fe9a26649416ed83c7
MD5 0b14e9c38768bb47f026a953a58b5a26
BLAKE2b-256 a0ccd2db3b36a34b956604020e7ee2db9065b4f41a0697c4b8f69012d1cbfaec

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 3a9395f4030cf6eaaa7e432cb167fbaa577109c38114ab1dbdfdd75693b3048b
MD5 f4ef5988c4fd51ef2e6e29dbd8294ac7
BLAKE2b-256 8735e1b4194d241faea2bbe6237e2b6f6ed0b891a935eb5e1db8eae5345abc44

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 afb62a4ec7f758d1bc12e0bcb6178d762d4ca26cb5e005f5a24f79ef52f47dec
MD5 653bde907cff137b72acabeff071aceb
BLAKE2b-256 42158bf4abfe7147649c1f18521a65c790dcc646e2cc56e26bd02f5217d6b1d1

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp312-cp312-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp312-cp312-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 f5abfba01b9d1d4e23c647871203692f6e14cbd41a5d99a19ae3504e987a175c
MD5 17aa038ba74b12aff71cac7c2c8cc971
BLAKE2b-256 ddafe4a17f42a0fd58704dd0d65c9ac9c09c3305553d684089c15f3642d51ae4

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp311-none-win_amd64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 7ca5e4643cbb229c4eaae198458a5fafdeb812576edb3a160a5c2e4951d3cd1c
MD5 99335f9ac32636d5c578cdfce3054d5c
BLAKE2b-256 744315c766f6a1749a3e0b0794e64223f7be4bf209e9d59f7b10bd5a45771be9

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp311-none-win32.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp311-none-win32.whl
Algorithm Hash digest
SHA256 c0a9fcaaf3a05b7b0b199414bfcdfc06a90b6779bfc37f784fafd45a0dad3201
MD5 f7ca8003ef2cd9c84869199f5f024cd4
BLAKE2b-256 633ca6bc5fb5d176786115a31ba9e3862615f9455edc90c72a4e797e6993c855

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2c9588ed7e1dfbe06190d6946cd0a9c0f4f22018f09dc37bb6ac686bcfd67907
MD5 50e93905dd62292709680b539eeabccc
BLAKE2b-256 68c781d9dfd992f25ea06c103335855aae8e678f356242fa1228cde23dc5ce52

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 d72a650be1c44e69dacac26aa7ab354790f95191bc830b3d43ab32ec71388a25
MD5 83f6b5f826fb295be9ded5e760968b0e
BLAKE2b-256 3da4aebfae8133642d2b1dcaf7d39cc623bdf2a96cfded945054f36bb9a29e64

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d1502bb5e33a9f535b735cb8a898d96b81a63d19a1d2143f76e3b1ae7b7651ae
MD5 6dc3e26dcd15dd882ac8aa46f9884a32
BLAKE2b-256 cd3f37c181ff67d29b6079287d8e9afe20ea20fc5dc648f9eef8f384ecd7a030

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5d39aa5ca1b2d51aee46c7c96fa7ad0463dd2471a1b9827019b71fa367c918be
MD5 ab430d195f6f6f117c3f0204e608e461
BLAKE2b-256 05595dbee53dd15f76f6c1258de75d11ab708cbaad86a08abc525249adba0cf9

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d6b22ad7d05db4ae6ef8ff127ccee2afb456941ddd781dc8675f110f77de8337
MD5 edfb0333eac7c8619a8f18c55f6a3906
BLAKE2b-256 bb67d873f0a05daa9923e48ddbb857a6c240a9f864016e010aa811118b4008c9

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 a7ae33db037acb47c6517a938885dab4b8bf14e6d6b27a9fa7e237e8680babbc
MD5 e70dff34a54cf3d29602370873b0d0e5
BLAKE2b-256 a629f707aae9410ed3154c3526d9803866b05384423189a49503b9164786cb2e

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ca558c52130a3a2a1fa432504fc71d4c6e2370340008d4bad261b33c05f81b3f
MD5 ae87bf30ee787ee57075cba29366fa21
BLAKE2b-256 4fa4b7cbdea7c3c25f9856e62ebdce910b51a4d08d210206d50ce040bfae3f5e

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp311-cp311-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp311-cp311-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 14216ee3aeb0c9ab6a5665d71a1399653fe635ed66f208165ed67346feeb2a5c
MD5 c4f388baa74ba68e14d4f9597c1c7781
BLAKE2b-256 b1a05bcf57bcc9f07e4832a9ff5d4fcc0225c79e92e946b2136b4201f0ccdf75

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp310-none-win_amd64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 745befc3a1e4c9510d00ad34cac206b678944257fc8b5c1cd7b512310cd7fdbd
MD5 93b00332ae6dd7c84c70b7bb63daaf61
BLAKE2b-256 bcde6067ca0b56af998a6cdef6f7b25fbb964c9f25f90ee4dafb2368aeb94730

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp310-none-win32.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp310-none-win32.whl
Algorithm Hash digest
SHA256 ffa8eff2bbfbf80469a6c4ee3864ccfd4dc7150717e9a1abcf4580b354ccea10
MD5 a2e86daf87ffcb384dead52658975010
BLAKE2b-256 091654c27f9ede92fc9d0087ec2c949b2623b6f217b6f117d45e75636b560f96

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ce3233f1c05c623eafdbfb751bd8ac47e20c4bfd744ba6dda5d5c47db7149425
MD5 53223193792cb5471d0fb10297f01672
BLAKE2b-256 5f66bbbbdd8236b887c2bfe97608c5181e177b91d6a78ec5973e5291bd2a2f3c

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp310-cp310-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 a8092529499ab8bb1beece1a9f4c241b1d0c3ab6c36b181833c4107b81ae5d1d
MD5 9795399257b4908343743d706edfb292
BLAKE2b-256 52290181e8ef99ec9f8f10dedc332863fa769a45e76e09ff2513dfc46ac98b73

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4e162f9aa34c4f78bc48a69b557b58f783e1ee1dd369e99ab7d2b14bdac3447f
MD5 b25921ae1728d4fb5b28f9b3819dd3a0
BLAKE2b-256 be5f98c963953ddee03d93482912ed26f7eafcfbf1d4217ae900e517998f24f6

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d24190b5e75c466fe3117310aeae2d11e30e62dfb531c288a85b9b6ab11c94e2
MD5 76924aaacd052199a77addaac53a289f
BLAKE2b-256 fc4d07b82d7fd5d39d00c42c0ec46dc8dd9230b4236a7b67b34df8f3a34013b2

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 013a57405ce9b5d03250fc50cd09b10122f21398851c4ecce98647fe7585b5f4
MD5 9e36404368118e5b85498c5e32c059df
BLAKE2b-256 7d5a0b1844fd6c6aaf1c4d2b03201f36ad40e82208dfccd6bc4ff5e66c7d813a

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 51adc3ac5c39a1d245394e6f02a197896e380b908642f4a19bef7554029f6437
MD5 7131ef80be6fdd5817c65fef8c51e63a
BLAKE2b-256 a5d715009996bc2441334c20b77b8e081693431598b4612d0e6e8d8568d0f0b5

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9ae0c1fac75528db15c293160ff1d5feeba0dbc0d2f3a43e62ba07163cf81354
MD5 62584a2b731a166e2f94829303f838c5
BLAKE2b-256 eab4cec792d712194b63025983b9ef7e7392681ab0a565d7327b97d2f11110e7

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp310-cp310-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp310-cp310-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 972b76218a2d72095c372e8b592b6ba0295a47880387de2d7c9c38da64d76a10
MD5 12ce64eb5e68bcd95bb2e11798c93650
BLAKE2b-256 dd36ea5252b1529220813b835066d8e1658812753597b3e67abaf7421834a7b6

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp39-none-win_amd64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 48203ec1fbd6be0b6af3888b9494d543b86f3cf8de6f9b1cd08867fa12cd673c
MD5 f4c34c101641606eae1d67605c235a08
BLAKE2b-256 ab66955786a1d969302c24289fefc2e0bc373c549c3dfb1da9fa917205b50b87

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp39-none-win32.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp39-none-win32.whl
Algorithm Hash digest
SHA256 183c335b8f73286bb67a8a1a780145335af7fd03cc4e4de926da792d1ed120fe
MD5 3b897355b0a01d4508e78c3135b1f0e2
BLAKE2b-256 7d496a5e25285b08cab7e0795cd2fbb7865a5d86efc21bcac8388083f9dee451

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 daf792f938601d161e93ab8c46b0aee2facc187c2bb9e87a4ee314d7fc7471a1
MD5 d47f6f91e741aa31064dae1c23b5bca2
BLAKE2b-256 9be111a02dc30a1f4e02e03b3ad067edba84fada0570b457d70cbc84217a5917

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp39-cp39-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp39-cp39-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 c2f788707484686e584e947bbc526fae13759c2bcfe57d8076e3b20c2278d0e0
MD5 d34ba06d5211a2aa82cd84c71fd6c21d
BLAKE2b-256 5d0b894a9251c3ef2044301da6f56fc91da4a99c098e82ebd02b1c89924256f8

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 15beab4230e16c38cc88e50548076943e960476b2681e9873d764770173c1d3d
MD5 6789092228c066ace4010097d0890e4f
BLAKE2b-256 f44a32c74885e5b13e6fa97d4c9a478fa51f0ca70dd66bd4e4e9c2a49d0553ab

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 40629aeac21a3cbc6ea45b925c6adab66badd6c9fc1885285f2aa27658b86157
MD5 3aeb6cf745651eda58792c84a956868f
BLAKE2b-256 34673699632a8424e21562fd4ae64a7da7d0455f697f7549d82a3072313a3dc6

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 01b69fc794474611978bbc922cbff154ef390287df47c1a48699c589a78587a2
MD5 bee5ae06d36b9aa681e234f68deb1df5
BLAKE2b-256 a2ca3867c2ee0d3ca9d37d6c5c166bab6ea738e0153e475e48cae3c273e67814

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 815f3290ab251907e142b82969a1d251c1c03d9ec2c71c8fbe5dc87f46152590
MD5 56e125c0ff5be87fa1e6e19a014584e8
BLAKE2b-256 025123f7c3c3fd6564588703875776d0a0ff647678adf5266b58427b592614c1

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3e4a936dc42ce8c118afcba3ce5f964b9590c2ed84fb622b7b35c518e4ea1c90
MD5 345918c3e30a26261d341518f56cab36
BLAKE2b-256 1cfd5285d864a7e9dc62e5108f28ae644f08d905216522a6d71a0128968b4eb4

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp39-cp39-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp39-cp39-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 c568d1bc24ccf61a76d3b181139dbc519180f14e2eca437ba1e10a62efaf9e4a
MD5 b88fef69d5be363f659064ee6a10e372
BLAKE2b-256 af31a4694a9fb3178ea570e3a43e4d1057d2bfd14af1ebe35f61723980349137

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp38-none-win_amd64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 278fa16dcb6b595daae796606dade38f80bcbf630f4816489a3ce0d719a71214
MD5 dcf83028ae1fccd69ef50d9eba2f80a3
BLAKE2b-256 047989a25d89a43cf3b332fe3ad4a93705c76d8c989bca0310e1ae517cfefe41

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp38-none-win32.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp38-none-win32.whl
Algorithm Hash digest
SHA256 d9cf3b724c422c9902c8370c20725e321df5d6a53f98cba7210c02cd5d0fcb30
MD5 7e3fdda5984c26383ee6cbd03895717b
BLAKE2b-256 756997c0920f483287fa08cf3980ca0d959f81f359f2a8b45c5281339a02b978

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bd4ee12cb7e8e6b6a201617d2a45b5ca6bbae0c29396326ab247f574997f556b
MD5 aedfca87b320fa7255569de66b6fda3f
BLAKE2b-256 d43b842e549f3f411fec5ac57c8f1ef2b2dd1bda39987105520273f8814852c7

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp38-cp38-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp38-cp38-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 f1fd7d870148dcc73f871f05ad321884efb08d26325ffb5d2a12b03ab9d25043
MD5 eae77ec767799f83463473d5a4687abf
BLAKE2b-256 9801cc43c07e83e7144f0d09e0163d8a619ab7b9cfd432d668aca12b7b1810c7

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp38-cp38-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 acc85b33c2f5faa46c1f49d184b990c8e6ef9b8d9aabcc720a2f018c2392de44
MD5 b96c5614392ba71fb689b2fcb796575f
BLAKE2b-256 2078eecda8cce3934e011f8f489d3878df9b07107629f1ad703cace1b3944c24

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 06b75e2669df01fc49429a586aada9b316d0142aa5e1fcb692efe679c0beaef4
MD5 412f0071fe67bdbb54fdd1c38c1e330d
BLAKE2b-256 13fa5175be09b63f4f282f3c6b705cc7f15857e5044b7e339cd66debe703ebbc

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1bc34b9331fc2ded8a78610ac406fa0cb4772a43d6280ee7830cb507ff78a9d5
MD5 3c8ca7d926348ab81c441ab0bff1c865
BLAKE2b-256 f284b67c3e5633a3ab0c513257e4ed4242e1cfc753a491378f68ae3b51a9436e

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 b30bd3e63d8f0df6527b626c6eaf3836427ebf67dbdd527affbcedad0aa62cc4
MD5 edcf74dc44be1d0061ea930440215c62
BLAKE2b-256 bda85cae75306efa1ebf795465af43e2cdb366418d89f9f7f893239cf228b61c

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 801e5aec372f3f175838eaf9462f17028cf58924df737118845e3a9502a6d189
MD5 59ce15f90ce18ecc8c021803f8d0d1a1
BLAKE2b-256 b8c274e6e78f8584e50ff72f0346b8caffe2550034504fe7508d1222a57adbb2

See more details on using hashes here.

File details

Details for the file lingua_language_detector-2.0.2-cp38-cp38-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for lingua_language_detector-2.0.2-cp38-cp38-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 99e59214d7f9a7f11f812b416cabfccfcdb6bc52a0cf67aa59f4d984d5e1296f
MD5 ca0c402e369fcb0fab6e82ef1599ed07
BLAKE2b-256 38df55d23a0b03266162b457dd98e058df024bf8d4a526a9bd3d7391dbf1926f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page