Release Word Extraction Tool v0.41: DBSchema-Vorkommenshäufigkeit von Wörtern hinzugefügt

* Bitte beachten Sie auch die neu veröffentlichte v0.42, indem Sie Fehler beheben.
Release Word Extractor v0.42: Fehlerbehebung – Produktivitäts-Skill (prodskill.com)

Verteilen Sie nach der Ergänzung die Funktion zum Hinzufügen und Extrahieren von DBSchema-Vorkommenshäufigkeitselementen von Wörtern aus dem zuvor verteilten Wortextraktionstool (v0.40). Das Element DBSchema_Freq informiert, über wie viele DB-Schemas die Quelle des Wortes verteilt ist.

Bezug: Wortextraktionstool(1): Überblick über das Wortextraktionstool

1. Das Ergebnis des Wortextraktionstools ändert sich

Ein Beispiel für das Wortextraktionsergebnis des zuvor vertriebenen Tools ist wie folgt.

▼ Beispielblatt „Worthäufigkeit“ vor der Änderung (v0.40)

WortFreqQuelle
Code110DB1.OWNER1.COMTCADMINISTCODE.ADMINIST_ZONE_CODE (administrativer Zonencode)
DB1.OWNER1.COMTCADMINISTCODERECPTNLOG.CHANGE_SE_CODE (Identifikationscode ändern)
DB1.OWNER1.COMTCADMINISTCODERECPTNLOG.CTPRVN_CODE (Versuchscode)
Anzahl103DB1.OWNER1.COMTCADMINISTCODERECPTNLOG.OPERT_SN(Auftragsseriennummer)
DB1.OWNER1.COMTCZIP.ZIP (Postleitzahl)
DB1.OWNER1.COMTHCONFMHISTORY.CONFM_NO (Genehmigungsnummer)
Anzahl der Personen88DB1.OWNER1.COMTNADBKMANAGE.ADBK_NM (Adressbuchname)
DB1.OWNER1.COMTCCMMNCLCODE.CL_CODE_NM (Klassifizierungscodename)
DB1.OWNER1.COMTCCMNDETAILCODE.CODE_NM (Codename)
Beispielblatt „Worthäufigkeit“ vor der Änderung

DBSchema_Freq-Elemente werden wie folgt zu den aus v0.41 extrahierten Ergebnissen hinzugefügt.

▼ Beispielblatt „Worthäufigkeit“ nach Änderung (v0.41)

WortFreqQuelleDBSchema_Freq
Code110DB1.OWNER1.COMTCADMINISTCODE.ADMINIST_ZONE_CODE (administrativer Zonencode)
DB1.OWNER1.COMTCADMINISTCODERECPTNLOG.CHANGE_SE_CODE (Identifikationscode ändern)
DB1.OWNER1.COMTCADMINISTCODERECPTNLOG.CTPRVN_CODE (Versuchscode)
10
Anzahl103DB1.OWNER1.COMTCADMINISTCODERECPTNLOG.OPERT_SN(Auftragsseriennummer)
DB1.OWNER1.COMTCZIP.ZIP (Postleitzahl)
DB1.OWNER1.COMTHCONFMHISTORY.CONFM_NO (Genehmigungsnummer)
9
Anzahl der Personen88DB1.OWNER1.COMTNADBKMANAGE.ADBK_NM (Adressbuchname)
DB1.OWNER1.COMTCCMMNCLCODE.CL_CODE_NM (Klassifizierungscodename)
DB1.OWNER1.COMTCCMNDETAILCODE.CODE_NM (Codename)
5
Beispielblatt „Worthäufigkeit“ nach Änderungen

Das Element DBSchema_Freq informiert, über wie viele DB-Schemas die Quelle des Wortes verteilt ist. Informationen, die zum Auswählen von Standardwortkandidaten erforderlich sind, können etwas ausführlicher bereitgestellt werden.

  • Wenn die Frequenz (Freq) hoch ist, aber die DBSchema-Frequenz (DBSchema_Freq) niedrig ist
    • Das Wort kommt intensiv nur in einem bestimmten DB-Schema vor
  • Wenn sowohl die Frequenz (Freq) als auch die DBSchema-Frequenz (DBSchema_Freq) hoch sind
    • Das Wort wird gleichmäßig über das gesamte DB-Schema verteilt
  • Wenn die Frequenz (Freq) niedrig ist, aber die DBSchema-Frequenz (DBSchema_Freq) relativ hoch ist
    • Das Wort wird eher auf Aufnahme als auf Ausschluss in den kanonischen Wortkandidaten überprüft

2. Quellcodeänderungen

Es gibt Änderungen an drei Funktionen.

2.1. Funktion get_db_comment_text geändert

Zeile 343 hinzufügen: Erstellen Sie eine DBSchema-Spalte in der Datenrahmenvariablen df_text, die das Ergebnis der Textextraktion enthält, und erstellen Sie einen Wert.

    df_text['DBSchema'] = df_text['DB'] + '.' + df_text['Schema']  # DB.Schema 값 생성(2023-02-19)

2.2. Ändern Sie die get_word_list-Funktion

Zeile 104, 111 hinzufügen: DBSchema-Wert zum Datenrahmen des Ergebnisses der Wortextraktion hinzufügen

            if len(words) >= 1:
                # print(nouns, text)
                for word in words:
                    # print(noun, '\t', text)
                    if not is_db:
                        # sr_text = Series([file_name, file_type, page, text, word],
                        #                  index=['FileName', 'FileType', 'Page', 'Text', 'Word'])
                        df_word = DataFrame(
                            {'FileName': [file_name], 'FileType': [file_type], 'Page': [page], 'Text': [text],
                             'Word': [word], 'Source': [source]})
                    elif is_db_table:
                        # sr_text = Series([file_name, file_type, page, text, word, db, schema, table],
                        #                  index=['FileName', 'FileType', 'Page', 'Text', 'Word', 'DB', 'Schema', 'Table'])
                        df_word = DataFrame(
                            {'FileName': [file_name], 'FileType': [file_type], 'Page': [page], 'Text': [text],
                             'Word': [word], 'DB': [db], 'Schema': [schema], 'Table': [table “” not found /]
, 'Source': [source], 'DBSchema': [db_schema]}) elif is_db_column: # sr_text = Series([file_name, file_type, page, text, word, db, schema, table, column], # index=['FileName', 'FileType', 'Page', 'Text', 'Word', 'DB', 'Schema', 'Table', 'Column']) df_word = DataFrame( {'FileName': [file_name], 'FileType': [file_type], 'Page': [page], 'Text': [text], 'Word': [word], 'DB': [db], 'Schema': [schema], 'Table': [table “” not found /]
, 'Column': [column], 'Source': [source], 'DBSchema': [db_schema]})

2.3. Ändern Sie die Hauptfunktion

2.3.1. Hauptfunktionsinhalt vor Änderung

    # df_group = pd.DataFrame(df_result.groupby(by='Word').size().sort_values(ascending=False))
    df_result_subset = df_result[['Word', 'Source']]  # 빈도수를 구하기 위해 필요한 column만 추출
    # df_group = df_result_subset.groupby(by='Word').agg(['count', lambda x: list(x)])
    df_group = df_result_subset.groupby(by='Word').agg(['count', lambda x: '\n'.join(list(x)[:10])])
    df_group.index.name = 'Word'  # index명 재지정
    df_group.columns = ['Freq', 'Source']  # column명 재지정

2.3.2. Hauptfunktionsinhalt nach Änderung

    df_group = df_result.groupby('Word').agg({
        'Word': 'count',
        'Source': lambda x: '\n'.join(list(x)[:10]),
        'DBSchema': 'nunique'
    }).rename(columns={
        'Word': 'Freq',
        'Source': 'Source',
        'DBSchema': 'DBSchema_Freq'
    })

Dieser Code gruppiert Wort (word) in df_result, das eine Datenrahmenvariable als Ergebnis der Wortextraktion ist (groupby), erhält die Anzahl (nunique) von DBSchema-Werten mit entfernten Duplikaten und benennt das Element als DBSchema_Freq.

Als Referenz ist dieser Code der Testcode, den ich geschrieben habe. ChatGPTDies ist der Kodex, der zur Vereinfachung gegeben und angefordert wurde. Vor der Vereinfachung war es ein komplexer Code, der in zwei Datenrahmen aufgeteilt wurde, Lambda und Nunique auf jeden anwendete und sie dann zu einem zusammenführte. in letzter Zeit ChatGPT Bewunderung der Fähigkeit

2.4. Vollständige Details des Quellcodes in v0.41 geändert

Sie können die Details der Änderungen im Github-Link unten überprüfen.

https://github.com/DAToolset/ToolsForDataStandard/commit/b4b241b87f8cbf702087a33ad76302535640cf37?diff=split

v0.41에서 달라진 소스코드 내용
Inhalt des Quellcodes in v0.41 geändert

3. Word Extraction Tool (v0.41) herunterladen und ausführen

Sie können die geänderte Datei word_extractor.py im folgenden Link überprüfen.

ToolsForDataStandard/word_extractor.py unter DAToolset/ToolsForDataStandard (github.com)

Die Ausführungsmethode ist die gleiche wie bei v0.40. Bitte beachten Sie die unten stehenden Informationen.


Das Wortextraktionstool v0.41 ist nicht gut getestet und kann Fehler oder Bugs einführen. Bitte hinterlassen Sie Fehler, Bugs, Anfragen usw. in den Kommentaren.

3 Antworten

  1. Avatar-Foto 김기영 sagt:

    Hallo!

    Bei Verwendung der Methode zum Extrahieren von Wörtern aus einer Datei ohne DB-Kommentar, die eine der drei Ausführungsmethoden ist
    (python word_extractor.py –in_path .\in –out_path .\out)

    txt, Wort, ppt alle

    miniconda3\envs\wordextr\lib\site-packages\pandas\core\apply.py“, Zeile 601, in normalize_dictlike_arg raise KeyError(f“Column(s) {cols_sorted} do not exist“)

    KeyError: „Spalte(n) ['DBSchema'] existieren nicht“

    Es wird mit einem Fehler beendet.

    Die Ausführungsmethoden 2 und 3, bei denen die DB-Kommentardatei eingetragen wird, funktionieren fehlerfrei.

    Ich habe 'DBSchema': [db_schema] in Zeile 97 eingefügt, aber dieses Mal

    In get_grouper raise KeyError(gpr) KeyError: „Wort“-Fehler wird angezeigt.

    Danke

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

de_DEDeutsch