Stolik z laptopem i CV

Natural Language Processing i pliki CV

Sam proces parsowania plików CV jest pewnym wyzwaniem (https://www.textkernel.com/challenges-behind-parsing-matching-cvs-jobs/), ponieważ nie są identycznie ustrukturyzowane, więc potrzebne są techniki z zakresu Data Science i Natural Language Processing, ale sam proces jest jak najbardziej wykonalny. Wszystko opiera się na przypisywaniu odpowiedniego prawdopodobieństwa, przyjęliśmy przy tym kilka założeń. Np. przy analizie CV nie rozpatrujemy jej analizując słowo po słowie, tylko linia po linii, bo na podstawie naszego researchu takie modele okazują się bardziej skuteczne.

Cały proces przebiega następująco:

  1. Najpierw każdy dokument ze dowolnego źródła danych, np. załącznika z maila, zostaje sprowadzony do identycznego formatu, tj. zwykłego tekstu (plain text).
  2. Wycinamy cały szum informacyjny, który możemy wyciąć (tj. elementy dekoracyjne, zbędne spacje, wypunktowania list, jeśli tekst jest w kilku kolumnach, to zamieniamy je na jedną).
  3. Rozbijamy tekst na pojedyncze linie (tzw. tokenization), w tym momencie każda linia jest osobnym "tokenem", to jest podstawową jednostką przy analizie dokumentu.
  4. Potem robimy analizę leksykalną, tj. określamy semantyczny sens danego fragmentu tekstu przy okazji go tagując, np. czy jest nagłówkiem sekcji, czy dana linia jest częścią większego zdania itp. Każda właściwość ma przypisane prawdopodobieństwo, co widać na screenie poniżej: :
  5. Na tej podstawie dostaniemy wektor danych i będziemy mogli łączyć linie tekstu / tokeny w większe segmenty. Np. jeżeli mamy token "Doświadczenie zawodowe" rozpoznany z odpowiednim prawdopodobieństem (na początek próg 0,9) jako nagłówek sekcji, a poniżej znajdą się elementy niżej rozpoznane jako np. element listy albo szerszej wypowiedzi, to wszystko połączymy w jeden segment.
  6. Mając większe segmenty będziemy również za pomocą prawdopodobieństwa określać ich właściwości, tj. klasyfikować ich tematykę (np. doświadczenie zawodowe, wolontariat itd.). Tematyka sekcji może być klasyfikowana na podstawie słów kluczowych.

Dopiero taki model może zapewnić odpowiednią skuteczność przy parsowaniu plików CV. Na podstawie samego tylko porównywania wzorców (wyrażeń regularnych) dałoby się jedynie wyciągnąć z odpowiednią skutecznością np. tylko mail albo telefon, co byłoby niewystarczające, stąd cały proces opisany powyżej.

Natomiast z innej strony użycie sztucznej inteligencji i sieci neuronowych do automatycznego uczenia się wymagałoby zbioru co najmniej setek tysięcy dokumentów, więc o ile to jest technicznie możliwe, to najpierw musimy zapewnić sobie taki zbiór dokumentów. Używanie technik Natural Language Processing może być dobrym wariantem pośrednim pomiędzy wyrażeniami regularnymi (czyli w zasadzie niczym), a zaawansowanymi technikami Data Science.