Vor kurzem musste ich Python studieren, also habe ich versucht, 100 Sprachprozesse anzuklopfen. Zunächst aus Kapitel 1: Vorbereitende Bewegung.
http://www.cl.ecei.tohoku.ac.jp/nlp100/
Holen Sie sich eine Zeichenfolge, in der die Zeichen der Zeichenfolge "betont" umgekehrt angeordnet sind (vom Ende bis zum Anfang).
q00='stressed'
print(q00[::-1])
Nehmen Sie das 1., 3., 5. und 7. Zeichen der Zeichenkette "Patatokukashi" heraus und erhalten Sie die verkettete Zeichenkette.
q01='Patatoku Kashii'
#print(q01[1]+q01[3]+q01[5]+q01[7])
# ->aktualisierte Version
print(q01[1::2])
Erhalten Sie die Zeichenkette "Patatokukashi", indem Sie die Zeichen "Pattocar" + "Tax" von Anfang an abwechselnd verbinden.
q021=''
q022=''
length=min(len(q021),len(q022))
ansq02=''
for i in range(length):
temp=q021[i]+q022[i]
ansq02+=temp
print(ansq02)
q021=''
q022=''
ansq022="".join(i+j for i,j in zip(q021,q022))
print(ansq022)
Teilen Sie den Satz „Jetzt brauche ich nach den schweren Vorlesungen über Quantenmechanik einen Alkoholiker auf.“ In Wörter auf und erstellen Sie eine Liste mit der Anzahl der (alphabetischen) Zeichen in jedem Wort in der Reihenfolge ihres Auftretens.
q03="Now I need a drink, alcoholic of course, after the heavy lectures involving quantum mechanics."
ansq03=[len(i.strip(",.")) for i in q03.split()]
print(ansq03)
Teilen 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, 19 auf Das erste Wort ist das erste Zeichen, die anderen Wörter sind die ersten beiden Zeichen, und das assoziative Array (Wörterbuchtyp oder Kartentyp) von der extrahierten Zeichenfolge bis zur Wortposition (welche Anzahl von Wörtern von Anfang an) wird erstellt. Erstelle es.
q04="Hi He Lied Because Boron Could Not Oxidize Fluorine. New Nations Might Also Sign Peace Security Clause. Arthur King Can."
dict={}
q04_list=[(i.strip(",.")) for i in q04.split()]
print(q04_list)
q04_listNum=[1, 5, 6, 7, 8, 9, 15, 16, 19]
for idx,val in enumerate(q04_list):
temp_char=val
idx += 1
if ((idx) in q04_listNum):
dict[temp_char[0]] = idx
else:
dict[temp_char[:2:1]] =idx
print(dict)
q05="I am an NLPer"
# bi-gram for char
char_bigram=[q05[i:i+2] for i in range(len(q05)-1)]
print(char_bigram)
# n-bigram for words
words=[(i.strip(".,")) for i in q05.split()]
words_bigram=["-".join(words[i:i+2]) for i in range(len(words)-1)]
print(words_bigram)
Suchen Sie den in "paraparaparadise" und "Absatz" enthaltenen Satz von Zeichen-Bi-Gramm als X bzw. Y und suchen Sie den Summensatz, den Produktsatz und den Differenzsatz von X bzw. Y. Finden Sie außerdem heraus, ob das Bi-Gramm in X und Y enthalten ist.
import copy
def bigram(a):
result=[a[i:i+2] for i in range(len(a)-1)]
return result
q061="paraparaparadise"
q062="paragraph"
bigramX_list = copy.deepcopy(bigram(q061))
bigramY_list = copy.deepcopy(bigram(q062))
bigramX_set=set(bigramX_list)
bigramY_set=set(bigramY_list)
print ('bigramX_set =', bigramX_set)
print ('bigramY_set =', bigramY_set)
#Summensatz
print ('Summensatz= ', (bigramX_set | bigramY_set))
#Differenz gesetzt
print ('Differenz gesetzt= ', (bigramX_set - bigramY_set))
#Produktset
print ('Produktset= ', (bigramX_set & bigramY_set))
#Suche
print ('Suchergebnisse= ', 'se' in (bigramX_set | bigramY_set))
Implementieren Sie eine Funktion, die die Argumente x, y, z verwendet und die Zeichenfolge "y bei x ist z" zurückgibt. Setzen Sie außerdem x = 12, y = "Temperatur", z = 22,4 und überprüfen Sie das Ausführungsergebnis.
def maketext(x=1,y='Anko',z=10):
result="".join(str(x)+'von Zeit'+y+'Ist'+str(z))
return result
x,y,z=12,'Temperatur',22.4
print (maketext(x,y,z))
#print (maketext())
Implementieren Sie die Funktionsverschlüsselung, die jedes Zeichen der angegebenen Zeichenfolge gemäß den folgenden Spezifikationen konvertiert.
Durch Kleinbuchstaben ersetzen (219 - Zeichencode) Geben Sie andere Zeichen so aus, wie sie sind Verwenden Sie diese Funktion, um englische Nachrichten zu verschlüsseln / entschlüsseln.
#Q08
def cipher(a):
temp_list=[a[i:i+1] for i in range(len(a))]
ciptex_list=[]
for i in temp_list:
texCode=ord(i)
if (texCode>96 & texCode<123):
updtexCode=chr(219-texCode)
else:
updtexCode=chr(texCode)
ciptex_list.append(updtexCode)
result="".join(i for i in ciptex_list)
return result
print (cipher('abcdef')) #=> 'zyxwyu'
import random
def randsort(a):
result = []
listA = [(i.strip(',.')) for i in a.split()]
randchar = lambda x: ''.join(random.sample(x,len(x)))
for i in listA:
if len(i) > 4:
temp_word=i[:1:1]+randchar(i[1:len(i)-1:1])+i[len(i)-1::1]
result.append(temp_word)
else:
result.append(i)
return (result)
q09="I couldn't believe that I could actually understand what I was reading : the phenomenal power of the human mind ."
print(randsort(q09))
Bis jetzt habe ich zum ersten Mal versucht, Python selbst zu schreiben, aber ich habe viel recherchiert und viel gelernt. Es mag andere effizientere Möglichkeiten geben, aber im Moment werde ich es tun.
"Abrufen des Codewerts eines Zeichens" / "Abrufen eines Zeichens von einem Codewert" in Python http://d.hatena.ne.jp/flying-foozy/20111204/1323009984
Unicode-HOWTO https://docs.python.jp/3/howto/unicode.html
Python: Vergleichen Sie zwei Listenelemente mit einer Set-Typ-Set-Operation http://www.yukun.info/blog/2008/08/python-set-list-comparison.html
3.7 set type --set, frozenset http://docs.python.jp/2.5/lib/types-set.html
Recommended Posts