[PYTHON] 100 natürliche Sprachverarbeitung klopft Kapitel 1 Vorbereitungsbewegung (erste Hälfte)

Gelöst "100 Klopfen der Verarbeitung natürlicher Sprache 2015", veröffentlicht auf der Webseite des Inui-Okazaki-Labors der Tohoku-Universität Ich werde gehen, also werde ich es als Aufzeichnung zusammenfassen.

</ i> 00. Umgekehrte Reihenfolge der Zeichenfolgen

Holen Sie sich eine Zeichenfolge, in der die Zeichen der Zeichenfolge "betont" umgekehrt angeordnet sind (vom Ende bis zum Anfang).

Die angegebenen Zeichenfolgen können in umgekehrter Reihenfolge angezeigt werden. Das Schlüsselwort lautet "Extended Slices".

# -*- coding: utf-8 -*-
__author__ = 'todoroki'

string = "stressed"
print string[::-1]
#=> desserts

Der Punkt ist [:: -1]. Ich denke, es ist eine gute Idee, dies zu schreiben, wenn Sie die Inversion eines Strings erhalten. Sie können sehen, warum dies geschieht, indem Sie den relevanten Teil der offiziellen Python-Dokumentation lesen. Ich werde die Erklärung weglassen.

</ i> 01. "Patatokukashi"

Nehmen Sie das 1., 3., 5. und 7. Zeichen der Zeichenkette "Patatokukashi" heraus und erhalten Sie die verkettete Zeichenkette.

Dies kann auch mit "Extended Slices" gelöst werden.

# -*- coding: utf-8 -*-
__author__ = 'todoroki'

string = u"Patatoku Kashii"
print string[::2]
#=>Pat Auto

Es wird angezeigt, indem vom Anfang bis zum Ende der Zeichenfolge in Schritten von 2 Zeichen geschnitten wird.

</ i> 02. "Patcar" + "Tax" = "Patatokukasie"

Erhalten Sie die Zeichenkette "Patatokukashi", indem Sie die Zeichen "Pattocar" + "Tax" von Anfang an abwechselnd verbinden.

Dieses Problem verwendet die Funktion "zip".

# -*- coding: utf-8 -*-
__author__ = 'todoroki'

string1 = u"Pat Auto"
string2 = u"Taxi"
ans = u""

for a, b in zip(string1, string2):
    ans += a + b
print ans
#=>Patatoku Kashii

Da die Zip-Funktion eine Funktion ist, die das i-te Element jeder Sequenz als Taple zurückgibt, können mithilfe der Zip-Funktion zwei Sequenzobjekte parallel behandelt werden.

</ i> 03. Umfang

Zerlegen Sie den Satz „Jetzt brauche ich nach den schweren Vorlesungen über Quantenmechanik einen Alkoholiker.“ In Wörter und erstellen Sie eine Liste der Anzahl der (alphabetischen) Zeichen in jedem Wort in der Reihenfolge ihres Auftretens.

# -*- coding: utf-8 -*-
__author__ = 'todoroki'

string = 'Now I need a drink, alcoholic of course, after the heavy lectures involving quantum mechanics.'
ans = []

for s in string.split():
    s = s.replace(",", "").replace(".", "")
    ans.append(len(s))
print ans
#=> [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9]

Verwenden Sie die Methode split (), um das Ziel mit dem angegebenen Zeichen zu schneiden. Wenn nichts angegeben ist, wird ein leeres Trennzeichen angewendet. Da , und . im Weg sind, ersetzen Sie sie, bevor Sie die Anzahl der Zeichen zählen.

</ i> 04. Elementsymbol

Brechen Sie den Satz "Hi He Lied, weil Bor Fluor nicht oxidieren konnte. Neue Nationen könnten auch die Friedenssicherheitsklausel unterzeichnen. Arthur King Can." In die Wörter 1, 5, 6, 7, 8, 9, 15, 16 auf. Das 19. Wort ist das erste Zeichen, und die anderen Wörter sind die ersten beiden Zeichen. Erstellen.

# -*- coding: utf-8 -*-
__author__ = 'todoroki'

string = 'Hi He Lied Because Boron Could Not Oxidize Fluorine. New Nations Might Also Sign Peace Security Clause. Arthur King Can.'
index = [1, 5, 6, 7, 8, 9, 15, 16, 19]
ans = {}
for i, s in enumerate(string.split(), 1):
    if i in index:
        ans[s[0]] = i
    else:
        ans[s[0:2]] = i
print ans
#=> {'Be': 4, 'C': 6, 'B': 5, 'Ca': 20, 'F': 9, 'S': 16, 'H': 1, 'K': 19, 'Al': 13, 'Mi': 12, 'Ne': 10, 'O': 8, 'Li': 3, 'P': 15, 'Si': 14, 'Ar': 18, 'Na': 11, 'N': 7, 'Cl': 17, 'He': 2}

Für das angegebene Wort werden zwei Zeichen durch Schneiden extrahiert. Der Startwert des Zählers kann angegeben werden, indem das zweite Argument der Aufzählungsfunktion angegeben wird ([[Referenz]] [[Referenz]](http://docs.python.jp/2/library/functions.html#, die eine Funktion aus Python2.6 zu sein scheint). aufzählen)).

Recommended Posts