23 februari 2021
Werkt u aan NLP-projecten? Bent u het beu om altijd op zoek te zijn naar dezelfde domme voorbewerkingsfuncties op het web, zoals het verwijderen van accenten uit Franse berichten? Bent u het beu om uren bezig te zijn met Regex om e-mailadressen efficiënt uit een corpus te extraheren? Amale El Hamri zal u laten zien hoe NLPretext u van dienst kan zijn!

Medium Tech Blog by Artefact

Overzicht NLPretext

NLPretext bestaat uit 4 modules: basis, sociaal, token en augmentatie.

Elk van hen bevat verschillende functies om de belangrijkste tekstvoorbewerkingstaken uit te voeren.

Basis voorbewerking

De basismodule is een catalogus van transversale functies die in elk gebruik kunnen worden gebruikt. Hiermee kunt u het volgende afhandelen:

  • Slechte witruimtes in een tekst, tekens aan het einde van een regel
  • Coderingsproblemen
  • Speciale tekens zoals valutasymbolen, cijfers, leestekens, Latijnse en niet-Latijnse tekens

  • E-mails en telefoonnummers
uit nlpretext.basic.preprocess importeer replace_emails
voorbeeld = “Ik heb deze e-mail doorgestuurd naar obama@whitehouse.gov”
voorbeeld = replace_emails(voorbeeld, replace_with=”*EMAIL*”)
print(voorbeeld)
# “Ik heb deze e-mail doorgestuurd naar *EMAIL*”.”

Sociale voorbewerking

De sociaal module is een catalogus met handige functies die handig kunnen zijn bij het verwerken van de sociale data, zoals:

  • extractie/verwijdering van hashtags

  • emoji's extraheren/verwijderen

  • extractie/verwijdering van vermeldingen

  • html-tags schoonmaken

uit nlpretext.social.preprocess importeer extract_emojis
voorbeeld = “Ik verzorg mijn huid 😀”
voorbeeld = extract_emojis(voorbeeld)
print(voorbeeld) #[‘:grijnzend_gezicht:’]

Tekstvergroting

De augmentatiemodule helpt u om nieuwe teksten te genereren op basis van uw gegeven voorbeelden door enkele woorden in de oorspronkelijke te wijzigen en eventueel geassocieerde entiteiten ongewijzigd te laten in het geval van NER-taken. Als u wilt dat andere woorden dan entiteiten ongewijzigd blijven, kunt u dit opgeven in het argument Stopwoorden. Wijzigingen hangen af van de gekozen methode, de methoden die momenteel door de module worden ondersteund zijn substituties met synoniemen met Wordnet of BERT uit de nlpaug bibliotheek.

Creëer uw end-to-end pijplijn

Standaard pijplijn

Onze bibliotheek biedt een Preprocessor-object om alle voorbewerkingen efficiënt uit te voeren.
Als u alle elementen van uw tekst moet behouden en een minimale opschoning moet uitvoeren, gebruik dan de standaard pijplijn. Deze normaliseert witruimtes en verwijdert newline-tekens, lost unicode-problemen op en verwijdert terugkerende artefacten uit sociale data zoals vermeldingen, hashtags en HTML-tags.

van nlpretext importeer Preprocessor
text = “Ik heb net het beste diner in mijn leven @latourdargent !!! Ik raad aan 😀 #food #paris n”
preprocessor = Preprocessor()
tekst = preprocessor.run(tekst) print(tekst)
# “Ik heb zojuist het beste diner van mijn leven gehad!!! Ik raad aan”

Aangepaste pijplijn

Als u een duidelijk idee hebt van welke voorbewerkingsfuncties u in uw voorbewerkingspijplijn wilt opnemen, kunt u deze toevoegen in uw eigen Preprocessor.

van nlpretext importeer Preprocessor
uit nlpretext.basic.preprocess import (normalize_whitespace, remove_punct, remove_eol_characters, remove_stopwords, lower_text)
uit nlpretext.social.preprocess importeer remove_mentions, remove_hashtag, remove_emoji
text = "Ik heb net het beste diner in mijn leven gekregen @latourdargent !!! Ik raad aan 😀 #food #paris n"
preprocessor = Preprocessor()
preprocessor.pipe(lower_text)
preprocessor.pipe(remove_mentions)
preprocessor.pipe(remove_hashtag)
preprocessor.pipe(remove_emoji)
preprocessor.pipe(remove_eol_characters)
preprocessor.pipe(remove_stopwords, args=)
preprocessor.pipe(remove_punct)
preprocessor.pipe(normalize_whitespace)
tekst = preprocessor.run(tekst) print(tekst) # "diner leven aanbevelen"

NLPretext installatie

Voer het volgende uit om de bibliotheek te installeren

pip nlpretext installeren

U kunt de github-repository vinden hier en de documentatie van de bibliotheek hier

Dit artikel werd voor het eerst gepubliceerd op de Artefact Tech Blog op Medium.