最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)文檔精準(zhǔn)分句并調(diào)用模型進(jìn)行預(yù)翻譯

 更新時(shí)間:2025年11月24日 08:34:15   作者:PythonFun  
這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)文檔精準(zhǔn)分句并調(diào)用模型進(jìn)行預(yù)翻譯功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

一、問(wèn)題的來(lái)源

計(jì)算機(jī)輔助翻譯CAT工具通常會(huì)把導(dǎo)入的文件如Docx文件進(jìn)行分句,形成左右照的表格形式,再調(diào)用翻譯記憶庫(kù)、機(jī)器翻譯或者大模型進(jìn)行預(yù)翻譯,譯者根據(jù)術(shù)語(yǔ)庫(kù)、預(yù)翻譯結(jié)果進(jìn)行譯后編輯。

我一直想在Python中模擬這個(gè)過(guò)程,但是受限于分句工具NLTK工具箱中的sent_tokenize不夠準(zhǔn)確,經(jīng)常把Mr. Washington D.C.中的句點(diǎn)分割成句子,造成分句結(jié)果十分不理想。

二、問(wèn)題的解決

最近,我發(fā)現(xiàn)一個(gè)可以精準(zhǔn)分句的模塊。由開源社區(qū)出品PySBD模塊可以處理縮寫和多語(yǔ)言文本,精確識(shí)別句子的結(jié)束位置,為實(shí)現(xiàn)精準(zhǔn)的句子分割提供了現(xiàn)成的“輪子”。看下面的例子,PySBD很好地識(shí)別出了句子結(jié)尾的位置,并把字符串精準(zhǔn)分割句子列表,為后續(xù)的預(yù)翻譯奠定了基礎(chǔ)。

import pysbd
seg = pysbd.Segmenter(language="en", clean=True)
print(seg.segment("Dr. Smith went to Washington. It rained."))
# ['Dr. Smith went to Washington.', 'It rained.']

三、問(wèn)題的延伸

有了準(zhǔn)確分句的支持,下一步就可以利用Python調(diào)用python-docx模塊讀取要翻譯的文件,分割句子,然后調(diào)用機(jī)器翻譯API或者大模型進(jìn)行逐句翻譯,并寫入到新文件中。為了保持原有的段落格式,還要對(duì)段落進(jìn)行標(biāo)記,以便將預(yù)翻譯和譯后編輯的雙語(yǔ)文本進(jìn)行還原,以便進(jìn)行段對(duì)段的校核。

1. 定義翻譯函數(shù)

為了更好地維護(hù)代碼,我們利用小牛機(jī)器翻譯定義一個(gè)翻譯模塊,可以在主程序中進(jìn)行調(diào)用,代碼如下:

# niutrans.py
import json
import requests

class Translator:
    def __init__(self, apikey="Your API"): #錄入你的翻譯API
        self.apikey = apikey
        self.url = 'http://api.niutrans.com/NiuTransServer/translation'

    def translate(self, sentence, src_lan="auto", tgt_lan="zh"):
        data = {"from": src_lan, "to": tgt_lan, "apikey": self.apikey, "src_text": sentence}
        res = requests.post(self.url, data=data)
        res_dict = json.loads(res.text)
        if "tgt_text" in res_dict:
            result = res_dict['tgt_text']
        else:
            result = res.text
        return result

def translate(sentence, src_lan, tgt_lan, apikey="Your API"):
    """便捷函數(shù),直接調(diào)用翻譯"""
    translator = Translator(apikey)
    return translator.translate(sentence, src_lan, tgt_lan)

if __name__ == "__main__":
    while True:
        line = input("請(qǐng)輸入要翻譯的文本:")
        try:
            trans = translate(line, 'auto', 'en')
            print(trans)
        except Exception as exc:
            print(exc)

在DeepSeek的輔助下,我們輕松定義這個(gè)翻譯模塊,可以使用當(dāng)前代碼或在另一個(gè)test.py文件中輸入以下代碼進(jìn)行測(cè)試。調(diào)用上述模塊的方法有三種,代碼如下所示:

# 方式1:使用便捷函數(shù)
from niutrans import translate
result = translate("你好", "auto", "en")
print(result)

# 方式2:使用Translator類
from niutrans import Translator
translator = Translator()
result = translator.translate("你好", "auto", "en")
print(result)

# 方式3:使用自定義API密鑰
from niutrans import Translator
translator = Translator(apikey="d99fc0600b16efa6e310f53579593c57")
result = translator.translate("你好", "auto", "en")
print(result)

2. 編寫主程序

主要執(zhí)行讀取要翻譯的文件,記錄段落信息,生成段落字符串組成的列表。然后,利用pysbd按照段落來(lái)分割句子,并存儲(chǔ)在列表當(dāng)中。最后逐句翻譯后,生成英漢句級(jí)對(duì)照的文本,為譯后編輯提供便利。

為了方便測(cè)試,DeepSeek還輔助生成了一個(gè)測(cè)試的函數(shù)。對(duì)于可能存在的錯(cuò)誤信息也進(jìn)行了及時(shí)的反饋。

import pysbd
from docx import Document
from niutrans import Translator
import re

class DocxSentenceProcessor:
    def __init__(self, language="en", clean=True):
        self.segmenter = pysbd.Segmenter(language=language, clean=clean)
        self.translator = Translator()

    def read_docx(self, file_path):
        """讀取DOCX文件內(nèi)容"""
        doc = Document(file_path)
        content = []
        for i, paragraph in enumerate(doc.paragraphs):
            if paragraph.text.strip():  # 忽略空段落
                content.append({
                    'paragraph_id': i,
                    'original_text': paragraph.text,
                    'sentences': []
                })
        return content

    def segment_sentences(self, text):
        """切分句子"""
        return self.segmenter.segment(text)

    def translate_sentence(self, sentence, dest_language='zh'):
        """翻譯句子"""
        try:
            translation = self.translator.translate(sentence, "auto", dest_language)
            return translation  # 直接返回翻譯結(jié)果,因?yàn)樾掳姹痉祷氐氖亲址?
        except Exception as e:
            print(f"翻譯錯(cuò)誤: {e}")
            return f"[翻譯失敗] {sentence}"

    def process_docx(self, input_file, output_file, dest_language='zh'):
        """處理DOCX文件:切分句子并翻譯"""
        # 讀取原始文檔
        paragraphs = self.read_docx(input_file)

        # 處理每個(gè)段落
        for para in paragraphs:
            if para['original_text']:
                # 切分句子
                sentences = self.segment_sentences(para['original_text'])

                # 對(duì)每個(gè)句子進(jìn)行翻譯
                for i, sentence in enumerate(sentences):
                    if sentence.strip():  # 忽略空句子
                        translated = self.translate_sentence(sentence.strip(), dest_language)
                        para['sentences'].append({
                            'sentence_id': i,
                            'original': sentence.strip(),
                            'translated': translated
                        })

        # 保存處理后的文檔
        self.save_processed_docx(paragraphs, output_file)

        return paragraphs

    def save_processed_docx(self, paragraphs, output_file):
        """保存處理后的DOCX文件(逐句對(duì)照)"""
        doc = Document()

        for para in paragraphs:
            if para['sentences']:
                # 添加段落標(biāo)簽
                p = doc.add_paragraph()
                p.add_run(f"[段落{para['paragraph_id']+1}] ").bold = True
                # 添加逐句照內(nèi)容
                for sentence_data in para['sentences']:
                    p = doc.add_paragraph()
                    p.add_run(f"[{sentence_data['sentence_id']+1}] ")
                    p.add_run(sentence_data['original'])
                    p = doc.add_paragraph()
                    p.add_run(sentence_data['translated'])
                    p.add_run(" ")

        doc.save(output_file)
        print(f"處理后的文檔已保存為: {output_file}")

    def restore_bilingual_docx(self, processed_paragraphs, output_file):
        """恢復(fù)為雙語(yǔ)對(duì)照格式的DOCX(用換行分割)"""
        doc = Document()

        for para in processed_paragraphs:
            if para['sentences']:
                # 添加段落標(biāo)簽
                p_label = doc.add_paragraph()
                p_label.add_run(f"[段落{para['paragraph_id']+1}]").bold = True

                # 逐句添加雙語(yǔ)對(duì)照,用換行分割
                for sentence_data in para['sentences']:
                    # 英文句子
                    p_en = doc.add_paragraph()
                    p_en.add_run(f"[{sentence_data['sentence_id']+1}] ").bold = True
                    p_en.add_run(sentence_data['original'])

                    # 中文翻譯(換行)
                    p_zh = doc.add_paragraph()
                    p_zh.add_run(" " * 4)  # 縮進(jìn)
                    p_zh.add_run(sentence_data['translated'])

                # 添加空行分隔段落
                doc.add_paragraph()

        doc.save(output_file)
        print(f"雙語(yǔ)對(duì)照文檔已保存為: {output_file}")

    def restore_bilingual_compact(self, processed_paragraphs, output_file):
        """恢復(fù)為緊湊雙語(yǔ)對(duì)照格式(段落級(jí)別換行)"""
        doc = Document()

        for para in processed_paragraphs:
            if para['sentences']:
                # 添加段落標(biāo)簽
#                 p_label = doc.add_paragraph()
#                 p_label.add_run(f"[段落{para['paragraph_id']+1}]").bold = True

                # 英文段落
                p_en = doc.add_paragraph()
                p_en.add_run("EN: ").bold = True
                for sentence_data in para['sentences']:
                    p_en.add_run(f"[{sentence_data['sentence_id']+1}] {sentence_data['original']} ")

                # 中文段落(換行)
                p_zh = doc.add_paragraph()
                p_zh.add_run("CN: ").bold = True
                for sentence_data in para['sentences']:
                    p_zh.add_run(f"[{sentence_data['sentence_id']+1}] {sentence_data['translated']} ")

                # 添加空行分隔
                doc.add_paragraph()

        doc.save(output_file)
        print(f"緊湊雙語(yǔ)對(duì)照文檔已保存為: {output_file}")

# 使用示例
def main():
    # 初始化處理器
    processor = DocxSentenceProcessor()

    # 處理DOCX文件
    input_file = "input.docx"
    output_file = "processed_output.docx"
    bilingual_file = "bilingual_output.docx"
    bilingual_compact_file = "bilingual_compact_output.docx"

    try:
        # 處理文檔:切分句子并翻譯
        processed_data = processor.process_docx(input_file, output_file)

        # 恢復(fù)為雙語(yǔ)對(duì)照格式(逐句換行)
        processor.restore_bilingual_docx(processed_data, bilingual_file)

        # 恢復(fù)為緊湊雙語(yǔ)對(duì)照格式(段落級(jí)別換行)
        processor.restore_bilingual_compact(processed_data, bilingual_compact_file)

        # 打印處理結(jié)果示例
        print("\n=== 處理結(jié)果示例 ===")
        for para in processed_data[:2]:  # 顯示前2個(gè)段落
            print(f"\n段落 {para['paragraph_id']+1}:")
            for sentence in para['sentences'][:3]:  # 顯示前3個(gè)句子
                print(f"  [{sentence['sentence_id']+1}] EN: {sentence['original']}")
                print(f"      CN: {sentence['translated']}")
                print()  # 換行分割

    except FileNotFoundError:
        print(f"錯(cuò)誤: 找不到輸入文件 {input_file}")
        print("正在創(chuàng)建示例文件...")
        create_sample_docx(input_file)

if __name__ == "__main__":
    # 運(yùn)行測(cè)試
    test_sentence_segmentation()
    print("\n" + "="*50 + "\n")

    # 運(yùn)行主程序
    main()

最終用一百多行代碼實(shí)現(xiàn)了文檔讀取、分句、翻譯、存儲(chǔ)的整個(gè)過(guò)程,模擬了普通CAT工具從導(dǎo)入文件——分句——預(yù)翻譯——導(dǎo)出雙語(yǔ)文本。

3. 進(jìn)階優(yōu)化

由于Python代碼十分靈活,還可以定制個(gè)性化的翻譯引擎,如調(diào)用DeepSeek的API實(shí)現(xiàn)句子翻譯。而且只需要把niutrans.py中的內(nèi)容替換成調(diào)用DeepSeek API的代碼就可以了。

先在DeepSeek官方文檔中找到調(diào)用的樣例代碼:

# Please install OpenAI SDK first: `pip3 install openai`
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get('DEEPSEEK_API_KEY'),
    base_url="https://api.deepseek.com")

response = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {"role": "system", "content": "You are a helpful assistant"},
        {"role": "user", "content": "Hello"},
    ],
    stream=False
)

print(response.choices[0].message.content)

然后,讓DeepSeek模仿之前調(diào)用小牛機(jī)器翻譯niutrans.py的代碼,生成一個(gè)可以調(diào)用的模塊:deepseek_translator.py

# deepseek_translator.py
import os
from openai import OpenAI

class DeepSeekTranslator:
    def __init__(self, api_key=None, base_url="https://api.deepseek.com", model="deepseek-chat"):
        """
        初始化DeepSeek翻譯器

        Args:
            api_key: API密鑰,如果為None則從環(huán)境變量DEEPSEEK_API_KEY獲取
            base_url: API基礎(chǔ)URL
            model: 使用的模型
        """
        self.api_key = api_key or os.environ.get('DEEPSEEK_API_KEY')
        if not self.api_key:
            raise ValueError("未提供API密鑰,請(qǐng)?jiān)O(shè)置api_key參數(shù)或DEEPSEEK_API_KEY環(huán)境變量")

        self.client = OpenAI(
            api_key=self.api_key,
            base_url=base_url
        )
        self.model = model

    def translate(self, text, target_language="中文", source_language="自動(dòng)檢測(cè)"):
        """
        翻譯文本

        Args:
            text: 要翻譯的文本
            target_language: 目標(biāo)語(yǔ)言,默認(rèn)為中文
            source_language: 源語(yǔ)言,默認(rèn)為自動(dòng)檢測(cè)

        Returns:
            str: 翻譯結(jié)果
        """
        system_prompt = f"""你是一名專業(yè)的翻譯助手。請(qǐng)將文本從{source_language}翻譯成{target_language}。

翻譯要求:
1. 準(zhǔn)確傳達(dá)原文意思
2. 保持語(yǔ)言流暢自然
3. 符合目標(biāo)語(yǔ)言的表達(dá)習(xí)慣
4. 保留專業(yè)術(shù)語(yǔ)和名稱
5. 不要添加額外解釋或評(píng)論

只需返回翻譯結(jié)果,不需要其他內(nèi)容。"""

        try:
            response = self.client.chat.completions.create(
                model=self.model,
                messages=[
                    {"role": "system", "content": system_prompt},
                    {"role": "user", "content": text},
                ],
                stream=False,
                temperature=0.3  # 較低的溫度使輸出更穩(wěn)定
            )

            return response.choices[0].message.content.strip()

        except Exception as e:
            print(f"翻譯錯(cuò)誤: {e}")
            return f"[翻譯失敗] {text}"

    def batch_translate(self, texts, target_language="中文", source_language="自動(dòng)檢測(cè)"):
        """
        批量翻譯文本

        Args:
            texts: 文本列表
            target_language: 目標(biāo)語(yǔ)言
            source_language: 源語(yǔ)言

        Returns:
            list: 翻譯結(jié)果列表
        """
        results = []
        for i, text in enumerate(texts):
            print(f"翻譯進(jìn)度: {i+1}/{len(texts)}")
            result = self.translate(text, target_language, source_language)
            results.append(result)
        return results

# 便捷函數(shù)
def translate(text, target_language="中文", source_language="自動(dòng)檢測(cè)", api_key=None):
    """便捷翻譯函數(shù)"""
    translator = DeepSeekTranslator(api_key=api_key)
    return translator.translate(text, target_language, source_language)

# 測(cè)試代碼
if __name__ == "__main__":
    # 測(cè)試翻譯
    try:
        translator = DeepSeekTranslator()

        # 單句翻譯測(cè)試
        test_text = "Hello, how are you today? I hope you're doing well."
        result = translator.translate(test_text, "中文", "英語(yǔ)")
        print(f"原文: {test_text}")
        print(f"翻譯: {result}")
        print("-" * 50)

        # 批量翻譯測(cè)試
        test_texts = [
            "Good morning!",
            "What is your name?",
            "I love programming and artificial intelligence."
        ]
        results = translator.batch_translate(test_texts, "中文", "英語(yǔ)")
        for original, translated in zip(test_texts, results):
            print(f"原文: {original}")
            print(f"翻譯: {translated}")
            print()

    except ValueError as e:
        print(f"初始化錯(cuò)誤: {e}")
        print("請(qǐng)?jiān)O(shè)置DEEPSEEK_API_KEY環(huán)境變量或提供api_key參數(shù)")
    except Exception as e:
        print(f"測(cè)試錯(cuò)誤: {e}")

其調(diào)用的方式如下:

# 方式1:使用環(huán)境變量中的API密鑰
from deepseek_translator import DeepSeekTranslator

translator = DeepSeekTranslator()
result = translator.translate("Hello, world!", "中文", "英語(yǔ)")
print(result)

# 方式2:直接傳遞API密鑰
from deepseek_translator import DeepSeekTranslator

translator = DeepSeekTranslator(api_key="your_api_key_here")
result = translator.translate("Hello, world!", "中文", "英語(yǔ)")
print(result)

# 方式3:使用便捷函數(shù)
from deepseek_translator import translate

result = translate("Hello, world!", "中文", "英語(yǔ)")
print(result)

# 方式4:批量翻譯
from deepseek_translator import DeepSeekTranslator

translator = DeepSeekTranslator()
texts = ["First sentence.", "Second sentence.", "Third sentence."]
results = translator.batch_translate(texts, "中文", "英語(yǔ)")
for original, translated in zip(texts, results):
    print(f"{original} -> {translated}")

將上面改造的DeepSeek翻譯函數(shù)融合到文檔翻譯當(dāng)中就可以了:

# 在DocxSentenceProcessor中使用DeepSeek翻譯器
from deepseek_translator import DeepSeekTranslator

class DocxSentenceProcessor:
    def __init__(self, language="en", clean=True, translator_type="deepseek"):
        self.segmenter = pysbd.Segmenter(language=language, clean=clean)

        if translator_type == "deepseek":
            self.translator = DeepSeekTranslator()
        else:
            from niutrans import Translator
            self.translator = Translator()

    def translate_sentence(self, sentence, dest_language='中文'):
        """翻譯句子"""
        try:
            if hasattr(self.translator, 'translate'):
                # DeepSeek翻譯器
                translation = self.translator.translate(sentence, dest_language)
            else:
                # 小牛翻譯器
                translation = self.translator.translate(sentence, "auto", dest_language)
            return translation
        except Exception as e:
            print(f"翻譯錯(cuò)誤: {e}")
            return f"[翻譯失敗] {sentence}"
# 其它內(nèi)容不變。

四、生成的文件展示

生成的processed_output.docx文件當(dāng)中可以看出清楚地標(biāo)明了段醫(yī)學(xué),并進(jìn)行了準(zhǔn)確分句,每句句前都有序號(hào)標(biāo)記,對(duì)于譯者進(jìn)行譯后編輯也十分友好。

五、學(xué)后的總結(jié)

本案例基于Python開發(fā)了一套計(jì)算機(jī)輔助翻譯流程,實(shí)現(xiàn)了文檔導(dǎo)入、智能分句、機(jī)器翻譯/DeepSeek大模型調(diào)用及句級(jí)對(duì)齊的全自動(dòng)化處理。該方案具有個(gè)性化程度高、靈活性強(qiáng)、成本低廉等突出優(yōu)勢(shì),有效解決了傳統(tǒng)CAT工具無(wú)法調(diào)用大模型或使用成本過(guò)高的問(wèn)題,使譯者無(wú)需依賴專業(yè)CAT軟件,在WPS或Word中即可直接進(jìn)行譯后編輯。目前該方案的主要局限在于格式標(biāo)簽保持方面存在一定難度,對(duì)復(fù)雜排版文檔的支持尚不完善,且暫不支持PDF格式文檔的處理。

后續(xù)還可以持續(xù)優(yōu)化,增加UI界面,提供批量翻譯,支持術(shù)語(yǔ)庫(kù)支持和質(zhì)量檢測(cè)功能。

當(dāng)前,人工智能技術(shù)日新月異,大模型輔助編程的能力日益強(qiáng)大。在掌握基礎(chǔ)語(yǔ)法和程序邏輯的前提下,我們能夠借助大模型實(shí)現(xiàn)文本處理與翻譯流程的自動(dòng)化,從而充分發(fā)揮Python作為“編程瑞士軍刀”的強(qiáng)大功能,有效提升翻譯工作的效率與質(zhì)量。

以上就是Python實(shí)現(xiàn)文檔精準(zhǔn)分句并調(diào)用模型進(jìn)行預(yù)翻譯的詳細(xì)內(nèi)容,更多關(guān)于Python文檔分句與翻譯的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python實(shí)現(xiàn)自動(dòng)清理電腦垃圾文件詳解

    Python實(shí)現(xiàn)自動(dòng)清理電腦垃圾文件詳解

    經(jīng)常存在在我們的電腦中的垃圾文件主要是指系統(tǒng)在運(yùn)行過(guò)程中產(chǎn)生的tmp臨時(shí)文件、日志文件、臨時(shí)備份文件等。本文將利用Python實(shí)現(xiàn)自動(dòng)清理這些垃圾文件,需要的可以參考一下
    2022-03-03
  • Python 自動(dòng)化常用操作及glob使用大全

    Python 自動(dòng)化常用操作及glob使用大全

    這篇文章主要介紹了Python 自動(dòng)化常用操作,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • tornado 多進(jìn)程模式解析

    tornado 多進(jìn)程模式解析

    這篇文章主要介紹了tornado 多進(jìn)程模式解析,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • python批量修改xml文件中的信息

    python批量修改xml文件中的信息

    大家好,本篇文章主要講的是python批量修改xml文件中的信息,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下的相關(guān)資料
    2022-01-01
  • Python集合set的交集和并集操作方法

    Python集合set的交集和并集操作方法

    這篇文章主要介紹了Python集合set的交集和并集操作方法小,python的set,是一個(gè)無(wú)序不重復(fù)元素集,?基本功能包括關(guān)系測(cè)試和消除重復(fù)元素本文講述了python中set集合的比較方法包括交集,并集,差集,下文更多詳細(xì)資料,需要的小伙伴可以參考一下
    2022-03-03
  • python實(shí)現(xiàn)上傳文件到linux指定目錄的方法

    python實(shí)現(xiàn)上傳文件到linux指定目錄的方法

    這篇文章主要介紹了python實(shí)現(xiàn)上傳文件到linux指定目錄的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Keras實(shí)現(xiàn)Vision?Transformer?VIT模型示例詳解

    Keras實(shí)現(xiàn)Vision?Transformer?VIT模型示例詳解

    這篇文章主要為大家介紹了Keras實(shí)現(xiàn)Vision?Transformer?VIT模型示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Python中HTTP請(qǐng)求的全面指南

    Python中HTTP請(qǐng)求的全面指南

    在現(xiàn)代網(wǎng)絡(luò)應(yīng)用中,HTTP(HyperText Transfer Protocol)協(xié)議是客戶端與服務(wù)器之間數(shù)據(jù)傳輸?shù)暮诵?本文都將從基礎(chǔ)到高級(jí),逐步引導(dǎo)你成為HTTP請(qǐng)求處理的高手,快跟隨小編一起學(xué)習(xí)起來(lái)吧
    2024-10-10
  • Python數(shù)據(jù)結(jié)構(gòu)與算法之字典樹實(shí)現(xiàn)方法示例

    Python數(shù)據(jù)結(jié)構(gòu)與算法之字典樹實(shí)現(xiàn)方法示例

    這篇文章主要介紹了Python數(shù)據(jù)結(jié)構(gòu)與算法之字典樹實(shí)現(xiàn)方法,可實(shí)現(xiàn)針對(duì)單詞出現(xiàn)次數(shù)的統(tǒng)計(jì)功能,涉及Python樹結(jié)構(gòu)的定義、遍歷及統(tǒng)計(jì)等相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12
  • python日志記錄模塊實(shí)例及改進(jìn)

    python日志記錄模塊實(shí)例及改進(jìn)

    許多應(yīng)用程序中都會(huì)有日志模塊,用于記錄系統(tǒng)在運(yùn)行過(guò)程中的一些關(guān)鍵信息,以便于對(duì)系統(tǒng)的運(yùn)行狀況進(jìn)行跟蹤。在python中,我們不需要第三方的日志組件,因?yàn)樗呀?jīng)為我們提供了簡(jiǎn)單易用、且功能強(qiáng)大的日志模塊:logging。
    2017-02-02

最新評(píng)論

临夏市| 安溪县| 中江县| 榆林市| 大余县| 光山县| 诸暨市| 梅河口市| 丰宁| 金溪县| 临泉县| 汝州市| 尼勒克县| 东丽区| 开阳县| 正安县| 建湖县| 探索| 石屏县| 安丘市| 师宗县| 海盐县| 景宁| 新安县| 隆子县| 武夷山市| 卓尼县| 牙克石市| 浑源县| 二连浩特市| 佛山市| 家居| 盱眙县| 隆回县| 比如县| 翁牛特旗| 上高县| 舞钢市| 苍溪县| 改则县| 府谷县|