Я сделал порт превосходной библиотеки xcolor, чтобы удалить его зависимость jQuery. Там есть множество функций, включая светящиеся и затемняющие цвета.
Действительно, преобразование hex в RGB является полностью отдельной функцией от осветления или затемнения цветов. Держите вещи DRY, пожалуйста. В любом случае, если у вас есть цвет RGB, вы можете просто добавить разницу между уровнем освещенности и уровнем освещенности, который у вас есть для каждого из значений RGB:
var lightness = function(level) {
if(level === undefined) {
return Math.max(this.g,this.r,this.b)
} else {
var roundedLevel = Math.round(level) // fractions won't work here
var levelChange = roundedLevel - this.lightness()
var r = Math.max(0,this.r+levelChange)
var g = Math.max(0,this.g+levelChange)
var b = Math.max(0,this.b+levelChange)
if(r > 0xff) r = 0xff
if(g > 0xff) g = 0xff
if(b > 0xff) b = 0xff
return xolor({r: r, g: g, b: b})
}
}
var lighter = function(amount) {
return this.lightness(this.lightness()+amount)
}
См. https://github.com/fresheneesz/xolor для большей части источника.
В настоящее время NLTK не обеспечивает сопряжения. Pattern-en и nodebox делают спряжения.
Иногда примеры на веб-сайте pattern-en не работают, как показано. Это работало для меня:
>>> from pattern.en import conjugate
>>> verb = "go"
>>> conjugate(verb,
... tense = "past", # INFINITIVE, PRESENT, PAST, FUTURE
... person = 3, # 1, 2, 3 or None
... number = "singular", # SG, PL
... mood = "indicative", # INDICATIVE, IMPERATIVE, CONDITIONAL, SUBJUNCTIVE
... aspect = "imperfective", # IMPERFECTIVE, PERFECTIVE, PROGRESSIVE
... negated = False) # True or False
u'went'
>>>
ПРИМЕЧАНИЕ
Кажется, что conjugate
выводит только тогда, когда время не требует вспомогательного глагола. Например, на испанском языке (единственное первое лицо) будущего ir - iré . На английском языке будущее go формируется с помощью вспомогательного будет , а инфинитив go , в результате чего пойдет , В приведенном ниже коде выводится iré , но не будет идти .
>>> from pattern.es import conjugate as conjugate_es
>>> verb = "ir"
>>> conjugate_es(verb, tense = "future")
u'ir\xe1'
>>> from pattern.en import conjugate as conjugate_en
>>> verb = "go"
>>> conjugate_en(verb, tense = "future")
>>>
Я использовал MontyLingua для флексии и спряжения слов. https://pypi.python.org/pypi/MontyLingua/2.1
mlg = MontyLingua.MontyNLGenerator.MontyNLGenerator()
mlg.conjugate_verb(verb,mode)
Дополнительная информация: https://en.wikipedia.org/wiki/ MontyLingua