ウィキペディアの最初の文は、ほとんどの場合、何かを言いますis, was, are or were
。したがって、考えられる解決策は、接続動詞 (is、was、are、were) に到達するまで文を終了しないことです。もちろん、これは 100% 正確に機能しませんが、考えられる解決策は次のとおりです。
def get_first_sentence(my_string):
linking_verbs = set(['was', 'is', 'are', 'were'])
split_string = my_string.split(' ')
first_sentence = []
linked_verb_booly = False
for ele in split_string:
first_sentence.append(ele)
if ele in linking_verbs:
linked_verb_booly = True
if '.' in ele and linked_verb_booly == True:
break
return ' '.join(first_sentence)
例 1:
サー ウィンストン レナード スペンサー-チャーチル、KG、OM、CH、TD、PC、DL、FRS、Hon. RA (1874 年 11 月 30 日 – 1965 年 1 月 24 日) は、第二次世界大戦中の英国の指導者として知られる英国の政治家および政治家でした。彼は戦時中の偉大な指導者の 1 人として広く認められており、2 度首相を務めました。著名な政治家であり雄弁家でもあったチャーチルは、英国陸軍の将校、歴史家、作家、芸術家でもありました。
my_string_1 = 'Sir Winston Leonard Spencer-Churchill, KG, OM, CH, TD, PC, DL, FRS, Hon. RA (30 November 1874 – 24 January 1965) was a British politician and statesman known for his leadership of the United Kingdom during the Second World War. He is widely regarded as one of the great wartime leaders and served as Prime Minister twice. A noted statesman and orator, Churchill was also an officer in the British Army, a historian, a writer, and an artist.'
first_sentence_1 = get_first_sentence(my_string_1)
結果:
>>> first_sentence_1
'Sir Winston Leonard Spencer-Churchill, KG, OM, CH, TD, PC, DL, FRS, Hon. RA (30 November 1874 \xe2\x80\x93 24 January 1965) was a British politician and statesman known for his leadership of the United Kingdom during the Second World War.'
例 2:
Python は汎用の高水準プログラミング言語 [11] であり、その設計哲学はコードの読みやすさを重視しています。その構文は明確で[12]、表現力豊かであると言われています[13]。Python には、大規模で包括的な標準ライブラリがあります[14]。
結果:
>>> first_sentence_2
'Python is a general-purpose, high-level programming language[11] whose design philosophy emphasizes code readability.'
例 3:
中国 (Listeni/ˈtʃaɪnə/; 中国語: 中国; ピンイン: Zhōngguó; 中国の名前も参照)、正式には中華人民共和国 (PRC) は、人口が 13 億人を超える世界で最も人口の多い国です。約 960 万平方キロメートルをカバーする東アジアの州は、土地面積で世界第 2 位の国であり[13]、総面積の定義に応じて総面積で 3 番目または 4 番目に大きい国です[14]。
my_string_3 = "China (Listeni/ˈtʃaɪnə/; Chinese: 中国; pinyin: Zhōngguó; see also Names of China), officially the People's Republic of China (PRC), is the world's most-populous country, with a population of over 1.3 billion. Covering approximately 9.6 million square kilometres, the East Asian state is the world's second-largest country by land area,[13] and the third- or fourth-largest in total area, depending on the definition of total area.[14]"
first_sentence_3 = get_first_sentence(my_string_3)
結果:
>>> first_sentence_3
"China (Listeni/\xcb\x88t\xca\x83a\xc9\xaan\xc9\x99/; Chinese: \xe4\xb8\xad\xe5\x9b\xbd; pinyin: Zh\xc5\x8dnggu\xc3\xb3; see also Names of China), officially the People's Republic of China (PRC), is the world's most-populous country, with a population of over 1.3"
'.' 1.3にあります。
また、上記はおそらく正規表現で行う方がよいでしょう。
ただのアイデア。