about summary refs log tree commit diff
path: root/app/lib/language_detector.rb
AgeCommit message (Collapse)Author
2020-06-25Fix Thai being skipped from language detection (#13989)Sasha Sorokin
Thai does not separate words by spaces, so I figured out it should be in 'reliable characters regexp' that denotes languages that do the same. Related #13891.
2020-03-09Bump cld3 from 3.2.6 to 3.3.0 (#13107)dependabot-preview[bot]
* Bump cld3 from 3.2.6 to 3.3.0 Bumps [cld3](https://github.com/akihikodaki/cld3-ruby) from 3.2.6 to 3.3.0. - [Release notes](https://github.com/akihikodaki/cld3-ruby/releases) - [Commits](https://github.com/akihikodaki/cld3-ruby/compare/v3.2.6...v3.3.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com> * Fix compatibility with cld3 3.3.0 Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> Co-authored-by: Eugen Rochko <eugen@zeonfederated.com>
2019-12-02Update ESLint and RuboCop in Code Climate (#12534)Yamagishi Kazutoshi
2019-07-18Change language detection to include hashtags as words (#11341)Eugen Rochko
2019-03-26Change language detector threshold from 140 characters to 4 words (#10376)Eugen Rochko
Add `lang` attribute to statuses in web UI
2019-03-15Fix language detection of non-latin alphabets even at few characters (#10276)Eugen Rochko
2018-10-05Leave unknown language as nil if account is remote (#8861)Jeong Arm
* Force use language detector if account is remote * Set unknown remote toot's language as nil
2018-07-14Disable language detection for texts shorter than 140 characters (#8010)Eugen Rochko
If the input text is blank after preparation (only mention, or only URL, or empty as in a media post), then use nil as language, since it's OK to show to everyone. Otherwise, always fall back to the server's default locale
2017-11-16Improve language filter (#5724)Renato "Lond" Cerqueira
* Scrub text of html before detecting language. * Detect language on statuses coming from activitypub. * Fix rubocop comments. * Remove custom emoji from text before language detection
2017-09-16Fix filterable_languages method of SettingsHelper (#4966)Akihiko Odaki
2017-09-08Fix language filter codes (#4841)Eugen Rochko
* Fix language filter codes CLD3 returns BCP-47 language identifier, filter settings expect identifiers in the ISO 639-1 format. Convert between formats, and exclude duplicate languages from filter choices (zh-CN->zh) * Fix zh name
2017-07-31Fix length validator counting things that look like URIs like URLs (#4462)Eugen Rochko
URI.extract is too strong, not limited to URLs, matched real text. Same issue was present in language detector.
2017-06-09Language detection defaults to nil (#3666)Matt Jankowski
* Default to nil for statuses.language * Language detection defaults to nil instead of instance UI default
2017-06-01Remove usernames and hashtags from language detection (#3503)Matt Jankowski
* Add failing specs for hashtag and username extraction in language detector * Remove usernames and hashtags from text before language detection * Handle multiple instances of special case, and reduce whitespace
2017-05-09Use CLD3 (#2949)Akihiko Odaki
Compact Language Detector v3 (CLD3) is the successor of CLD2, which was used in the previous implementation. CLD3 includes improvements since CLD2, and supports newer compilers. On the other hand, it has additional requirements and cld3-ruby, the FFI of CLD3 for Ruby, is still new and may be still inmature. Though CLD3 is named after CLD2, it is implemented with a neural network model, different from the old implementation, which is based on a Naïve Bayesian classifier. CLD3 supports newer compilers, such as GCC 6. CLD2 is not compatible with GCC 6 because it assigns negative values to varibales typed unsigned. (see internal/cld_generated_cjk_uni_prop_80.cc) The support for GCC 6 and newer compilers are essential today, when some server operating system such as Ubuntu Server 16.10 has GCC 6 by default. On the one hand, CLD3 requires C++11 support. Environments with old compilers such as Ubuntu Server 14.04 needs to update the system or install a newer compiler. CLD3 needs protocol buffers as a new dependency. However,it is not considered problematic because major server operating systems, CentOS and Ubuntu Server provide them. The FFI cld3-ruby was written by me (Akihiko Odaki) for use in Mastodon. It is still new and may be inmature, but confirmed to pass existing tests.
2017-05-08Delegate Account#user_locale method and allow nil (#2927)Matt Jankowski
2017-05-03Language improvements, replace whatlanguage with CLD (#2753)Matt Jankowski
* add failing en specs * add cld2 gem * Replace WhatLanguage with CLD
2017-04-22[WIP] Html lang on statuses (#2297)Matt Jankowski
* Add html lang attributes around statuses * Remove urls from language detection
2017-04-18Language detection refactor (#2099)Matt Jankowski
* Extract detect_language to separate class * Use default locale, not just en * Add spec to confirm that whatlanguage cant identify empty string * Allow account locale to override default in language detector * PostStatusService supplies an account to detect language