2016-12-21 2 views
0

je avais besoin d'aide avec deux ou trois choses .. Je suis nouveau à la PNL et le nettoyage des données non structurées .. quelqu'un peut-il répondre aux questions suivantes ... MerciQuel est le processus formel de nettoyage des données non structurées

  1. besoin aider avec regex à identifier des mots comme _male et female_ ou plus générique comme _word et word_ ou _qui_comprend quelque chose et se débarrasser du trait de soulignement qui est présent au début ou à la fin mais pas au milieu. Je voulais connaître le processus formel de nettoyage des données, comme il y a des étapes que nous devons suivre pour nettoyer les données non structurées, je pose cette question parce que je fais de la lemmatisation (avec POS) et remplace les mots courants comme (quelque chose, quelque chose) à quelque chose_quelque chose. Alors, quelles étapes dois-je suivre? Je suis en train de faire ce qui suit maintenant-tokenize_clean> remove_numbers> supprimer_surl> remove_slash> remove_cross> supprimer_garbage> remplacer_hypen_with_underscore> lemmatize_sentence> changer_word_to_bigrams> remove_smaller_than_3 (mots avec len plus petit que 3)> remove_simlutaneous (mots qui se sont produits simultanément plusieurs fois par exemple, mort death death) > remove_location> remove_bullets> remove_stop> remove_simlutaneous

Dois-je faire quelque chose de différent dans ces étapes?

  1. J'ai aussi des mots comme (group'shealthplanbecauseeitheroneofthefollowingqualifyingeventshappens), (whenyouuseanon_networkprovider), (par \ xad), (vlfldq \ x10vxshuylvhg) comment dois-je les gérer? les ignorer complètement ou essayer de les améliorer?

Mon but final est de classer les documents en classes Oui et Non. Toutes les suggestions sont les bienvenues.

Fournir plus d'exemples et d'explications si nécessaire.

+1

Il n'y a pas de processus de nettoyage de corpus «formel». Vous devriez vérifier les corpus que vous avez, compiler une liste des «choses problématiques», puis penser à ce que vous voulez faire: 1) corriger (si le nombre de segments affectés est important), 2) supprimer (si la quantité n'est pas ce gros). Il est plus facile de supprimer les «mauvaises» données que les corrections, à moins qu'il n'y ait un moyen automatique clair et sûr. Le reste de votre question est trop large. Commencez à travailler sur le nettoyage, puis revenez avec des questions plus concrètes. –

+0

@ WiktorStribiżew Merci ... Pouvez-vous aider avec l'expression régulière? la 1ère balle –

+0

Peut-être ['\ b (?: (\ w +) _ + | _ + (\ w +)) \ b' ->' $ 1 $ 2'] (https://regex101.com/r/LceAN6/1)? Ou ['\ b _ * (\ w +?) _ * \ B' ->' $ 1'] (https://regex101.com/r/LceAN6/2). –

Répondre

0
  1. L'expression régulière doit-elle permettre quelque chose __abc__? Si non,

  2. Quel problème résolvez-vous? Préparez-vous des textes pour la classification, etc.?

  3. Vous devez distinguer les erreurs et les séquences de symboles. Il existe des moyens scientifiques de le faire, par exemple la comparaison avec des mots de corpus, des arbres de suffixes annotés, etc.

+0

1. J'ai utilisé ceci pour l'expression régulière 'def remove_underscore (texte): text = re.sub (r '(^ | \ s) _ (\ S) ', r' \ 1 \ 2 ', texte) return re.sub (r' (\ S) _ ($ | \ s) ', r' \ 1 \ 2 ', texte) 'Je prépare un texte pour classification et je voulais savoir si je perds des fonctionnalités dans ce ou ok pour laisser passer les mauvaises données. –