mirror of
https://github.com/indentlabs/notebook.git
synced 2025-10-26 11:19:22 +00:00
31 lines
1.4 KiB
Ruby
31 lines
1.4 KiB
Ruby
module Documents
|
|
module Analysis
|
|
class ContentService < Service
|
|
def self.analyze(analysis_id)
|
|
analysis = DocumentAnalysis.find(analysis_id)
|
|
document = analysis.document
|
|
|
|
analysis.hate_trigger_words = LanguageFilter::Filter.new(matchlist: :hate, replacement: :stars).matched(document.plaintext)
|
|
analysis.hate_content_flag = analysis.hate_trigger_words.any?
|
|
|
|
analysis.profanity_trigger_words = LanguageFilter::Filter.new(matchlist: :profanity, replacement: :stars).matched(document.plaintext)
|
|
analysis.profanity_content_flag = analysis.profanity_trigger_words.any?
|
|
|
|
analysis.sex_trigger_words = LanguageFilter::Filter.new(matchlist: :sex, replacement: :stars).matched(document.plaintext)
|
|
analysis.sex_content_flag = analysis.sex_trigger_words.any?
|
|
|
|
analysis.violence_trigger_words = LanguageFilter::Filter.new(matchlist: :violence, replacement: :stars).matched(document.plaintext)
|
|
analysis.violence_content_flag = analysis.violence_trigger_words.any?
|
|
|
|
analysis.adult_content_flag = analysis.hate_content_flag? || analysis.profanity_content_flag? || analysis.sex_content_flag? || analysis.violence_content_flag?
|
|
|
|
analysis.save!
|
|
end
|
|
|
|
def self.adult_content?(matchlist=:hate, content)
|
|
LanguageFilter::Filter.new(matchlist: matchlist.to_sym).matched(content)
|
|
end
|
|
end
|
|
end
|
|
end
|