|
""" |
|
Module d'analyse de texte pour détecter automatiquement le type de contrat nécessaire. |
|
""" |
|
|
|
def analyze_work_description(description): |
|
""" |
|
Analyse la description fournie par l'utilisateur pour déterminer le type de contrat approprié. |
|
|
|
Args: |
|
description (str): Description fournie par l'utilisateur |
|
|
|
Returns: |
|
list: Liste des types de contrats nécessaires ["Auteur (droits d'auteur)", "Image (droit à l'image)"] |
|
""" |
|
|
|
texte = description.lower() |
|
|
|
|
|
score_auteur = 0 |
|
score_image = 0 |
|
|
|
|
|
mots_textuels = ["livre", "roman", "nouvelle", "poème", "article", "essai", "mémoire", "thèse", "scénario", |
|
"manuscrit", "rédaction", "texte", "écriture", "publication", "écrit", "éditorial", "blog", |
|
"ouvrage", "brochure", "journal", "magazine", "recueil", "rédactionnel"] |
|
|
|
mots_musicaux = ["musique", "composition", "partition", "chanson", "mélodie", "arrangement", "œuvre musicale", |
|
"symphonie", "album", "single", "son", "enregistrement", "morceau", "opus", "instrumental", |
|
"concert", "orchestration", "chant", "lyrics", "paroles", "refrain", "harmonie", "acoustique", |
|
"piano", "guitare", "violon", "batterie", "chanter", "interprétation musicale"] |
|
|
|
mots_graphiques = ["peinture", "dessin", "illustration", "graphisme", "logo", "infographie", "design", |
|
"tableau", "esquisse", "croquis", "fresque", "œuvre plastique", "affiche", "aquarelle", |
|
"sculpture", "gravure", "sérigraphie", "street art", "graffiti", "photographie artistique", |
|
"collage", "estampe", "lithographie", "pochette", "couverture"] |
|
|
|
mots_numeriques = ["logiciel", "site web", "application", "code", "programme", "script", "algorithme", |
|
"jeu vidéo", "développement", "appli", "interface", "plateforme", "solution digitale", |
|
"nft", "token", "crypto", "blockchain", "web3", "intelligence artificielle", "ia", |
|
"données", "base de données", "système", "api", "plugin", "extension", "widget"] |
|
|
|
mots_architecturaux = ["plan", "maquette", "conception architecturale", "design d'espace", "modélisation 3D", |
|
"architecture", "structure", "bâtiment", "édifice", "monument", "urbanisme", |
|
"aménagement", "paysagisme", "intérieur", "déco", "décoration"] |
|
|
|
mots_autres_auteur = ["concept", "idée", "invention", "savoir-faire", "méthode", "formule", "base de données", |
|
"compilation", "collection", "œuvre", "création", "synthèse", "travail", "production", |
|
"droit d'auteur", "propriété intellectuelle", "copyright", "brevet"] |
|
|
|
|
|
mots_image_personne = ["photographie", "portrait", "silhouette", "apparence", "visage", "corps", "identité visuelle", |
|
"selfie", "avatar", "photo d'identité", "figure", "physionomie", "traits", "mannequin", |
|
"modèle photo", "acteur", "actrice", "comédien", "comédienne", "figurant", "témoignage vidéo"] |
|
|
|
mots_image_contexte = ["pose", "séance photo", "shooting", "mannequin", "modèle", "figurant", "mise en scène", |
|
"studio photo", "apparition", "photoshoot", "objectif", "capturer", "appareil photo", |
|
"caméra", "filmer", "enregistrer", "photographier", "filmer", "enregistrer"] |
|
|
|
mots_image_visibilité = ["identifiable", "reconnaissable", "apparaître", "figurer", "posant", "visible", |
|
"présent", "participation", "exposé", "exhibé", "montré", "droit à l'image", |
|
"consentement", "image", "vidéo"] |
|
|
|
mots_image_supports = ["photo", "image", "pellicule", "cliché", "instantané", "polaroid", "négatif", |
|
"diapositive", "tirage", "impression photographique", "portrait", "photomaton"] |
|
|
|
|
|
mots_videos = ["vidéo", "film", "court-métrage", "clip", "documentaire", "reportage", "captation", "tournage", |
|
"filmé", "filmage", "enregistrement vidéo", "séquence", "rushes", "montage vidéo", "movie", |
|
"cinéma", "réalisation", "vidéaste", "youtubeur", "youtubeuse", "influenceur", "influenceuse", |
|
"vlog", "tiktok", "instagram", "content creator", "créateur de contenu"] |
|
|
|
mots_performances = ["performance", "spectacle", "concert", "prestation", "apparition", "interprétation", |
|
"récital", "show", "émission", "interview", "représentation", "apparition publique", |
|
"scène", "plateaux", "théâtre", "danse", "chorégraphie", "ballet", "opéra", "music-hall", |
|
"one man show", "stand-up", "humoriste", "conférence", "conférencier"] |
|
|
|
mots_digital_personnel = ["stream", "livestream", "webinaire", "podcast vidéo", "tutoriel vidéo", "cours filmé", |
|
"formation vidéo", "diffusion en direct", "chaîne youtube", "vlog", "direct", |
|
"twitch", "live", "enregistrement zoom", "vidéoconférence", "stories", "reels"] |
|
|
|
mots_œuvres_mixtes = ["œuvre audiovisuelle", "multimédia", "installation artistique interactive", |
|
"réalité virtuelle", "réalité augmentée", "performance audiovisuelle", "mapping vidéo", |
|
"projection", "hologramme", "expo interactive", "jeu immersif"] |
|
|
|
|
|
for mot in mots_textuels + mots_musicaux + mots_graphiques + mots_numeriques + mots_architecturaux + mots_autres_auteur: |
|
if mot in texte or any(m in texte for m in mot.split()): |
|
score_auteur += 1 |
|
|
|
|
|
for mot in mots_image_personne + mots_image_contexte + mots_image_visibilité + mots_image_supports: |
|
if mot in texte or any(m in texte for m in mot.split()): |
|
score_image += 1 |
|
|
|
|
|
for mot in mots_videos + mots_performances + mots_digital_personnel + mots_œuvres_mixtes: |
|
if mot in texte or any(m in texte for m in mot.split()): |
|
score_auteur += 1 |
|
score_image += 1 |
|
|
|
|
|
if "chant" in texte or "chante" in texte or "chanson" in texte: |
|
score_auteur += 1 |
|
if any(mot in texte for mot in ["vidéo", "film", "enregistrement vidéo", "youtube", "clip"]): |
|
score_image += 1 |
|
|
|
if "exposit" in texte: |
|
score_auteur += 1 |
|
if any(mot in texte for mot in ["photo", "portrait", "modèle", "personne"]): |
|
score_image += 1 |
|
|
|
|
|
if "voix" in texte: |
|
score_auteur += 1 |
|
if "visage" in texte or "image" in texte or "vidéo" in texte: |
|
score_image += 1 |
|
|
|
|
|
types_contrat = [] |
|
if score_auteur > 0: |
|
types_contrat.append("Auteur (droits d'auteur)") |
|
if score_image > 0: |
|
types_contrat.append("Image (droit à l'image)") |
|
|
|
|
|
if not types_contrat: |
|
return ["Auteur (droits d'auteur)", "Image (droit à l'image)"] |
|
|
|
return types_contrat |
|
|
|
|
|
def get_explanation(detected_types): |
|
""" |
|
Génère une explication claire des types de contrats détectés. |
|
|
|
Args: |
|
detected_types (list): Types de contrats détectés |
|
|
|
Returns: |
|
str: Explication pour l'utilisateur |
|
""" |
|
if len(detected_types) == 2: |
|
return """ |
|
J'ai détecté que vous avez besoin d'un **contrat combiné de cession de droits d'auteur et de droits à l'image**. |
|
|
|
Ce type de contrat est adapté lorsque: |
|
- L'œuvre est protégée par le droit d'auteur (texte, musique, design, etc.) |
|
- ET l'image d'une personne est visible et exploitée (vidéo, photo, etc.) |
|
|
|
Vous pouvez modifier cette sélection si nécessaire. |
|
""" |
|
|
|
elif "Auteur (droits d'auteur)" in detected_types: |
|
return """ |
|
J'ai détecté que vous avez besoin d'un **contrat de cession de droits d'auteur** uniquement. |
|
|
|
Ce type de contrat est adapté pour les œuvres protégées comme: |
|
- Textes, livres, articles |
|
- Musiques, compositions |
|
- Dessins, peintures, designs |
|
- Logiciels, sites web |
|
- Et autres créations originales |
|
|
|
Si votre projet implique également l'image reconnaissable d'une personne, vous pourriez aussi avoir besoin d'un contrat de droits à l'image. |
|
""" |
|
|
|
elif "Image (droit à l'image)" in detected_types: |
|
return """ |
|
J'ai détecté que vous avez besoin d'un **contrat de cession de droits à l'image** uniquement. |
|
|
|
Ce type de contrat est adapté lorsque: |
|
- L'image ou la vidéo d'une personne est utilisée |
|
- La personne est identifiable ou reconnaissable |
|
- Il n'y a pas d'œuvre originale protégée par le droit d'auteur |
|
|
|
Si votre projet implique également une œuvre originale, vous pourriez aussi avoir besoin d'un contrat de cession de droits d'auteur. |
|
""" |
|
|
|
else: |
|
return """ |
|
Je n'ai pas pu déterminer automatiquement le type de contrat nécessaire. |
|
|
|
Veuillez sélectionner manuellement: |
|
- Contrat de droits d'auteur: pour les œuvres originales (textes, musiques, designs, etc.) |
|
- Contrat de droits à l'image: pour l'utilisation de l'image d'une personne |
|
- Les deux: si les deux aspects sont présents |
|
""" |
|
|