Ich habe mit Python eine Jobwechsel-Site durchsucht und kurz "notwendige Fähigkeiten" untersucht. Da ich Ingenieur werden möchte, habe ich mich gefragt, welche Anforderungen tatsächlich auf der Website für Jobwechsel gestellt werden.
Ideen und Implementierungen Ich habe gelernt, wie man ein Web Director für unerfahrene Personen wird. Ich habe den Artikel von , den ich datengesteuert betrachtet habe, als Referenz genommen.
Bitte weisen Sie auf Fehler und kleine Fehler hin!
Für diejenigen, die nur die Ergebnisse sehen wollen
--Verbreitet
Teamentwicklung und Kommunikationsfähigkeiten
Git / GitHub
Vorderes Ende --html / css / javascript ist erforderlich ――Es wäre schön, wenn Sie entweder vue oder React, dann Angular machen könnten
Kenntnisse der Designfähigkeiten UI / UX
Serverseitige Sprachen wie PHP, Ruby und Java
Kenntnisse im Umgang mit Photoshop / Illustrator
webpack
etc……
--Serverseite
Es macht mir nichts aus, von der Mitte aus chaotisch zu werden.
Ist es das erwartete Ergebnis?
Dann zum Inhalt.
--Umgebung
MacOS Mojave 10.14.6
Python3.8.1
Umgebung
Installieren Sie Homebrew (von Anfang an enthalten)
MySQL-Installation (von Anfang an enthalten)
Installieren Sie Pyenv mit Homebrew
Installieren Sie Python mit Pyenv --Erstellen Sie mit venv eine Python-Umgebung unter dem Verzeichnis
Installieren Sie Bibliotheken wie bs4, MeCab, Jupyter Notebook, Pandas
--Referenz
Scraping → Die Implementierung der morphologischen Analyse erfolgt im Allgemeinen wie in Referenzartikel gezeigt und wird daher weggelassen. Der Ablauf besteht darin, die Job-URL für jeden Job abzurufen → die URL zu öffnen und den erforderlichen Skill-Teil abzurufen → die Häufigkeit für jedes Substantiv durch morphologische Analyse zu berechnen. Scraping mit Python und Beautiful Soup und <a href = "https: / /www.crummy.com/software/BeautifulSoup/bs4/doc/ "rel =" nofollow noopener "target =" _ blank "> Offizielles Dokument wurde ebenfalls erwähnt.
Besonders kratzen ・ Schlafen Sie, bevor Sie die Seite öffnen ・ Überprüfen Sie das Verbot, indem Sie sich robots.txt ansehen Seien wir vorsichtig.
Die Anzahl der erworbenen Jobs beträgt Frontend: 208 Fälle Serverseite: 181 Fälle Spiele: 175 war
Klicken Sie hier, um den für die Analyse verwendeten Code anzuzeigen.
analysis_job_search.py
import MeCab
import pandas as pd
import numpy as np
import mysql.connector as mydb
import pandas.io.sql as psql
import collections
pd.set_option('display.max_rows', 500)
#Methode zum Extrahieren der Nomenklatur aus dem Text
def devide_by_mecab(text):
tagger = MeCab.Tagger("-Ochasen")
node = tagger.parseToNode(text)
word_list = []
while node:
pos = node.feature.split(",")[0]
if pos in ["Substantiv"]:
word = node.surface
word_list.append(word)
node = node.next
return " ".join(word_list)
#Stellen Sie hier eine Verbindung zu den persönlichen MySQL-Einstellungen her
connection = mydb.connect(
host = '',
port = '',
user = '',
password = '',
database = ''
)
#Daten aus der DB abrufen
df_frontend = psql.read_sql("SELECT * FROM table WHERE search_word = 'Vorderes Ende'",connection)
df_serverside = psql.read_sql("SELECT * FROM table WHERE search_word = 'Serverseite'",connection)
df_game = psql.read_sql("SELECT * FROM table WHERE search_word = 'Spielprogrammierer'",connection)
#need_Eine Methode, die Fähigkeiten in Nomenklaturen zerlegt und zurückgibt
def get_all_words(df):
all_words = []
for index, row in df.iterrows():
words = devide_by_mecab(row['need_skills']).split()
all_words.extend(words)
return all_words
count_of_words_frontend = collections.Counter(get_all_words(df_frontend))
count_of_words_serverside = collections.Counter(get_all_words(df_serverside))
count_of_words_game = collections.Counter(get_all_words(df_game))
#Alle Nomenklaturen in der Reihenfolge ihrer Häufigkeit anzeigen
count_of_words_frontend.most_common()
count_of_words_serverside.most_common()
count_of_words_game.most_common()
#Anordnung von Wörtern in Bezug auf Fähigkeiten(count >= 6)
frontend_top_words = ['JavaScript', 'CSS', 'HTML', 'js', 'Vue', 'React', 'Design', 'Mannschaft', 'Git', 'UI', 'PHP', 'UX', 'Angular', 'Ruby', 'Javascript', 'jQuery', 'Photoshop', 'Kommunikation', 'API', 'TypeScript', 'SPA', 'Java', 'Sass', 'Designer', 'Illustrator', 'JS', 'Prüfung', 'Server', 'webpack', 'GitHub', 'AWS', 'AngularJS', 'WordPress', 'Webpack', 'Rails', 'iOS', 'CMS', 'Python', 'Redux', 'MySQL', 'Gulp', 'Android', 'gulp', 'C', 'SCSS', 'git', 'DB', 'Linux', 'Babel', 'Docker', 'CI']
serverside_top_words = ['Ruby', 'PHP', 'AWS', 'Python', 'C', 'Java', 'Server', 'Rails', 'Mannschaft', 'Infrastruktur', 'js', 'Git', 'Server', 'Android', 'JavaScript', 'Go', 'Linux', 'Perl', 'HTML', 'MySQL', 'RDBMS', 'CSS', 'Kura', 'Du tust', 'API', 'Vorderseite', 'Management', 'GitHub', 'iOS', 'DB', 'GCP', 'React', 'Vue', 'Netzwerk', 'Node', 'HTTP', 'Swift', 'CI', 'Objective', 'Docker', 'Sicherheit', 'Javascript', 'Azure', 'einheimisch', 'PostgreSQL', 'die Architektur', 'SQL', 'Prüfung', '#', 'Clever', 'Telefon', 'UI', 'MVC', 'Kommunikation', 'git', 'Scala', 'Kotlin' , 'CD', 'Datenbank', 'TypeScript', 'Apache', 'LAMP', 'Designer', 'Container', 'RDB', 'Laravel']
game_top_words = ['C', '3', 'D', 'Unity', 'Java', 'PHP', 'Design', '++', 'Server', '++、', 'Netzwerk', 'JavaScript', 'Android', 'Management', '#、', 'Objective', 'Photoshop', 'Maya', 'Mannschaft', 'Designer', 'Linux', 'MySQL', 'Ruby', 'Python', 'Infrastruktur', '#', 'Grafik', 'Server', 'Excel', 'Grafik', 'Kommunikation', 'Unreal', 'DCG', 'AWS', 'Perl', 'Illustrator', 'Engine', 'Planer', 'Word', 'einheimisch', 'Bewegung', 'Direktor', 'HTML', 'UI', 'Flash', 'bewirken', 'VB', 'Klang', 'DS', 'OpenGL', 'iOS', 'DirectX']
#Eine Methode zum Erstellen eines DataFrame aus Wörtern und Vorkommen
def get_top_word_df(top_words,count_of_words):
df = pd.DataFrame({})
for i,word in enumerate(top_words):
word_data = pd.Series([word,count_of_words[word]], index=['word','count'], name=i)
df = df.append(word_data)
return df
df_frontend_top_words = get_top_word_df(frontend_top_words,count_of_words_frontend)
df_serverside_top_words = get_top_word_df(serverside_top_words,count_of_words_serverside)
df_game_top_words = get_top_word_df(game_top_words,count_of_words_game)
for df in [df_frontend_top_words,df_serverside_top_words,df_game_top_words]:
df['rank'] = df['count'].rank(ascending = False, method = 'min').astype(int)
df['count'] = df['count'].astype(int)
df_frontend_top_words[['rank','word','count']]
df_serverside_top_words[['rank','word','count']]
df_game_top_words[['rank','word','count']]
Zunächst werden alle Wörter in der Reihenfolge ihrer Häufigkeit ausgegeben, und die Wörter, die nicht mit der Fertigkeit in Zusammenhang zu stehen scheinen, werden manuell entfernt und erneut ausgegeben. Ich habe es hinzugefügt, weil der Spielprogrammierer persönlich interessiert war.
Das Ergebnis ist wie folgt.
rank | word | count |
---|---|---|
1 | JavaScript | 147 |
2 | CSS | 145 |
3 | HTML | 131 |
4 | js | 72 |
5 | Vue | 63 |
5 | React | 63 |
7 | Design | 60 |
8 | Mannschaft | 40 |
9 | Git | 34 |
9 | UI | 34 |
11 | PHP | 31 |
12 | UX | 30 |
13 | Angular | 29 |
14 | Ruby | 23 |
15 | Javascript | 21 |
16 | jQuery | 20 |
16 | Photoshop | 20 |
18 | Kommunikation | 18 |
18 | API | 18 |
18 | TypeScript | 18 |
18 | SPA | 18 |
22 | Java | 16 |
22 | Sass | 16 |
24 | Designer | 15 |
24 | Illustrator | 15 |
24 | JS | 15 |
24 | Prüfung | 15 |
28 | Server | 14 |
29 | webpack | 13 |
29 | GitHub | 13 |
29 | AWS | 13 |
29 | AngularJS | 13 |
33 | WordPress | 12 |
33 | Webpack | 12 |
33 | Rails | 12 |
36 | iOS | 11 |
36 | CMS | 11 |
36 | Python | 11 |
36 | Redux | 11 |
40 | MySQL | 10 |
40 | Gulp | 10 |
42 | Android | 9 |
42 | gulp | 9 |
42 | C | 9 |
45 | SCSS | 8 |
45 | git | 8 |
47 | DB | 7 |
47 | Linux | 7 |
49 | Babel | 6 |
49 | Docker | 6 |
49 | CI | 6 |
rank | word | count |
---|---|---|
1 | Ruby | 81 |
2 | PHP | 67 |
3 | AWS | 50 |
4 | Python | 43 |
5 | C | 42 |
6 | Java | 41 |
7 | Server | 37 |
8 | Rails | 34 |
9 | Mannschaft | 33 |
10 | Infrastruktur | 31 |
11 | js | 29 |
12 | Git | 27 |
12 | Server | 27 |
14 | Android | 26 |
14 | JavaScript | 26 |
14 | Go | 26 |
17 | Linux | 24 |
17 | Perl | 24 |
19 | HTML | 21 |
19 | MySQL | 21 |
19 | RDBMS | 21 |
22 | CSS | 19 |
23 | Kura | 18 |
23 | Du tust | 18 |
23 | API | 18 |
26 | Vorderseite | 17 |
26 | Management | 17 |
26 | GitHub | 17 |
29 | iOS | 16 |
30 | DB | 15 |
30 | GCP | 15 |
30 | React | 15 |
33 | Vue | 14 |
34 | Netzwerk | 12 |
34 | Node | 12 |
36 | HTTP | 11 |
36 | Swift | 11 |
36 | CI | 11 |
36 | Objective | 11 |
40 | Docker | 10 |
40 | Sicherheit | 10 |
40 | Javascript | 10 |
40 | Azure | 10 |
44 | einheimisch | 9 |
44 | PostgreSQL | 9 |
44 | die Architektur | 9 |
44 | SQL | 9 |
44 | Prüfung | 9 |
49 | # | 8 |
49 | Clever | 8 |
49 | Telefon | 8 |
49 | UI | 8 |
49 | MVC | 8 |
49 | Kommunikation | 8 |
49 | git | 8 |
49 | Scala | 8 |
57 | Kotlin | 7 |
57 | CD | 7 |
57 | Datenbank | 7 |
57 | TypeScript | 7 |
57 | Apache | 7 |
57 | LAMP | 7 |
63 | Designer | 6 |
63 | Container | 6 |
63 | RDB | 6 |
63 | Laravel | 6 |
rank | word | count |
---|---|---|
1 | C | 156 |
2 | 3 | 62 |
3 | D | 49 |
4 | Unity | 45 |
5 | Java | 32 |
6 | PHP | 31 |
7 | Design | 29 |
8 | ++ | 26 |
9 | Server | 22 |
10 | ++、 | 19 |
10 | Netzwerk | 19 |
12 | JavaScript | 17 |
13 | Android | 15 |
14 | Management | 14 |
15 | #、 | 13 |
16 | Objective | 12 |
16 | Photoshop | 12 |
16 | Maya | 12 |
19 | Mannschaft | 11 |
19 | Designer | 11 |
19 | Linux | 11 |
19 | MySQL | 11 |
19 | Ruby | 11 |
19 | Python | 11 |
25 | Infrastruktur | 10 |
25 | # | 10 |
25 | Grafik | 10 |
28 | Server | 9 |
28 | Excel | 9 |
30 | Grafik | 8 |
30 | Kommunikation | 8 |
30 | Unreal | 8 |
30 | DCG | 8 |
30 | AWS | 8 |
30 | Perl | 8 |
36 | Illustrator | 7 |
36 | Engine | 7 |
36 | Planer | 7 |
36 | Word | 7 |
36 | einheimisch | 7 |
36 | Bewegung | 7 |
42 | Direktor | 6 |
42 | HTML | 6 |
42 | UI | 6 |
42 | Flash | 6 |
42 | bewirken | 6 |
42 | VB | 6 |
42 | Klang | 6 |
42 | DS | 6 |
42 | OpenGL | 6 |
42 | iOS | 6 |
42 | DirectX | 6 |
Ich bin der Meinung, dass die Ergebnisse fast wie erwartet sind.
Ursprünglich sollten dieselben Wörter wie "Javascript", "Javascript" und "Js" richtig benannt werden, aber es schien schwierig zu sein, da es viele Wörter gab, also war ich frustriert.
Front-End-Ingenieur: HTML, CSS, Javascript sind hervorragend und es scheint unverzichtbar zu sein. Darüber hinaus besteht der zweite Schritt darin, Frameworks wie Vue und React verwenden zu können und gleichzeitig das Design und UI / UX zu stärken. Danach wäre es gut, das Verständnis auf der Serverseite zu vertiefen.
Serverseitiger Ingenieur: Die Wolke ist unterteilt in "Kura" und "Udo"! …… Leises Gespräch. Es scheint, dass Ruby, PHP, Python und Java die Hauptsprachen sind (ich weiß nicht, welche C ist). Darüber hinaus ist die Wolke auch ein Pflichtfach. Ich möchte auch ein Verständnis der Datenbank, des Netzwerks und der Front-End-Seite. Es scheint viel zu lernen.
Spielprogrammierer: Immerhin ist die Richtung etwas anders und es ist interessant. C ++, C # und Unity, 3D sind die Hauptfelder, und es scheint notwendig zu sein, sich beim Programmieren mit Grafiken vertraut zu machen.
Ich habe wenig Wissen, also kann ich nur etwas wirklich Raues sagen ... orz. Ich würde gerne basierend auf diesem Ergebnis studieren!
――Da das Wort etwas streng ist, ist die Anzahl der Akquisitionen gering (ca. 200).
Da es sich nur um eine Umfrage an einem Standort handelt, besteht eine Tendenz
Namensidentifikation wie Klein- und Großbuchstaben, Abkürzung, Tippfehler
Ich habe mir die Frequenz nur kurz angesehen, bin aber froh, dass sie auch als Leitfaden für die Bereiche diente, die ich studieren sollte.
Es könnte interessanter sein, auf mehreren Websites zu vergleichen oder eine Querschnittsseite auszuprobieren. Wenn Sie interessiert sind, überprüfen Sie es bitte mit Ihren eigenen Augen!
Recommended Posts