Fuzzy Wuzzy returning "RuntimeError:"

Fuzzy Wuzzy returning "RuntimeError:"

我正在开发一个 python 脚本来将半结构化的转录本转换为结构化的 xml 文档。文档通常如下所示:

    (63019, 'Antero Midstream Partners LP (NYSE:AM) Q1 2017 Earnings Conference Call May  9, 2017 12:00 PM ET
Executives
Chad Green – Vice President, Finance
Paul Rady – Chairman and Chief Executive Officer
Mike Kennedy – Senior Vice President and Chief Financial Officer
Glen Warren – President and Chief Financial Officer of Antero Resources and President of Antero Midstream
Analysts
Ethan Bellamy – Baird
Holly Stewart – Scotia Howard Weil
Poe Fratt – D. A. Davidson
David Amoss – Heikkinen Energy
Operator
Good day, everyone, and welcome to the Antero Midstream’s First Quarter 2017 Investor Conference Call. All participants will be in a listen-only mode. [Operator Instructions] After today’s presentation, there will be an opportunity to ask questions. Please also note that today’s event is being recorded.
This time, I’d like to turn the conference call over to Mr. Chad Green, VP of Finance. Sir, please go ahead.
Chad Green
Thank you for joining us for Antero Midstream’s first quarter 2017 investor conference call. We’ll spend a few minutes going through the financial and operational highlights and then we’ll open it up for Q&A. I would also like to direct you to the home page of our website at www.anteromidstream.com where we have provided a separate earnings call presentation that will be reviewed during today’s call.
Before we start our comments, I would first like to remind you that during this call Antero Midstream management will make forward-looking statements. Such statements are based on our current judgments regarding factors that will impact the future performance of Antero Midstream and its sponsor Antero Resources and are subject to a number of risks and uncertainties, many of which are beyond Antero’s control. Actual outcomes and results could materially differ from what is expressed, implied or forecast in such statements.
Joining me on the call today are Paul Rady, Chairman and CEO of Antero Resources and Antero Midstream; Glen Warren, President and CFO of Antero Resources and President of Antero Midstream; and Mike Kennedy, CFO of Antero Midstream.
I will now turn the call over to Paul.
Paul Rady
Thanks, Chad. Thank you to everyone for listening in to the call today. In my comments I’m going to highlight the results and productivity gains at AR during the quarter and how it benefits AM. Mike will then walk through the first quarter results and reiterate guidance. Before getting into the detailed presentation, I would like to provide a quick recap of the quarterly results of Antero Resources. During the first quarter Antero Resources announced record production of over 2.1 Bcf equivalent per day, a 22% increase over the prior year quarter.
Based on first quarter production Antero Resources is now the largest producer in Appalachia, which is a tremendous achievement and the result of being the most integrated natural gas and NGL story in Appalachia. Importantly, first quarter which AR on track to achieve its 2017 production guidance, which in turn supports the Antero Midstream cash flow and distribution guidance.
Moving on to the operational momentum at Antero Resources, I’ll direct you to the slide number 2 entitled Marcellus completion evolution. As you can see on the bottom left of the graph, the dark green diamonds represent wells completed with eight hours old completion design, where we used 1,250 pounds or less of profit per foot and 32 barrels of water per foot on average. These 2015 completions support the 1.7 Bcf per 1,000 type curve that the majority of AR’s reserves are currently booked at.
Moving up and to the right, the red diamonds represent wells completed with 1,500 pounds per foot of proppant and 34 barrels per foot of water essentially the recipe that we used in 2016. As outlined on the insert graph at the top left of this slide, many of these wells now have over a year of production history and continue to support a 2.0 Bcf per 1,000 type curve. Toward the end of 2016 and the beginning of this year, AR began testing higher profit loads ranging from 1,750 to 2,500 pounds per foot and 36 barrels to 48 barrels of water per foot, as you can see with the light green, orange and blue diamonds on the upper right of the graph. At this time results are very encouraging and we look forward to continue analyzing the results to determine the impact on Antero Midstream moving forward.
Turning to slide number 3 entitled Recent Marcellus Well Results, I’d like to provide some more color around these encouraging results I just mentioned. The first pad I’ll highlight is a 10 well Marcellus pad located in the southern portion of our rich gas area in West Virginia dedicated to Antero Midstream. This pad is significant because it is a perfect example of our just in time capital investment philosophy drives the attractive organic rates of return at AM.
Within just weeks of tying this pad into our gathering system, we essentially filled our brand new compressor station at Sherwood 7 – Sherwood plant number 7. Mike will go into more details in his remarks, but this efficient capital investment continues to drive an increase in our rates of return. Just as important this pad utilized 1,700 pounds of profit per foot and generated a Wellhead EUR of 2.1 Bcf per 1,000 feet above AR’s type curve of 1.7 Bcf per 1,000 feet and 2016 results of 2.0 Bcf per 1,000 feet.
The second takeaway from this slide is the tremendous progress AR continues to make on finding and development costs. As highlighted in yellow on each pad the F&D costs are trending as low as [=10=].35 per Mcfe for certain pads. This results in tremendous full cycle economics in the three to four times range for AR and in turn supports the long-term development capabilities that drive throughput volumes at AM.
Moving on to slide number 4 entitled Capturing the Midstream Value Chain, wanted to highlight our strategy of capturing value across the midstream value chain. As you know, we recently announced a 10-year organic project backlog of  billion including .2 billion of gathering, compression and water infrastructure investments, as well as 0 million of processing and fractionation investment opportunities. Our ability to provide a 10-year investment opportunity set speaks to the visibility and integrated nature of the AR development plan and the AM infrastructure buildout.
Before moving on to third-party opportunities that we see, I wanted to provide a brief update on the processing and fractionation joint venture. As you know during the first quarter AM signed a joint venture with MarkWest Energy a subsidiary of MPLX to develop processing and fractionation assets in Appalachia. Since the signing of the agreement in February of this year, we have essentially filled the first joint venture processing plant at Sherwood 7 and have announced further commitments for Sherwood plants 10 and 11 which are both expected to be placed in service in the second half of 2018. We expect Sherwood plants 8 and 9 to be placed in the service in the third quarter of 2017 and first quarter of 2018 respectively.
In addition to the  billion of identified opportunities in AM continue to see significant opportunities downstream somewhere in the  billion area. To be clear, we’ve not included the upside of any of such potential downstream projects in any of our long-term targets, but we remain excited about these potential opportunities ahead.
Now let’s move on to slide number 5 entitled Largest Core Drilling Inventory In Appalachia, which underpins AM’s ability to provide a long-term organic project inventory and it gives AM a seat at the table in downstream infrastructure project investment. As you can see on the bar chart, on the left hand side of the page Antero Resources has 3,500 core Marcellus and Utica locations, which is 1,500 locations higher than our nearest competitors.
More importantly, we estimate AR as approximately three times as many core liquids rich locations as its nearest competitor, which is nearly all dedicated to AM. In fact, we estimate that AR controls 43% of our liquids rich locations in the core of the Southwest Marcellus and Utica. Importantly, AM benefits from AR’s deep inventory by positioning AM or potential equity interest in downstream projects that can be underpinned by volume commitments from AR given this substantial inventory. In our view this is one of the key and somewhat underappreciated aspects of having a fully integrated business model.
With that, I’ll turn it over to Mike.
Mike Kennedy
Thank you, Paul. AM started off 2017 with strong results that support its 2017 full year guidance. AM announced the first quarter distribution of [=10=].30 per unit, a 28% increase year-over-year and 7% increase sequentially with attractive DCF coverage of 1.4 times. The distribution marks our ninth consecutive distribution increase since the IPO in November of 2014. The distribution and DCF coverage in the first quarter places us on track to achieving our previously provided distribution growth for the year of 28% to 30%, while maintaining DCF coverage of 1.3 times to 1.45 times.
As you can see on Slide 6 titled High Growth Midstream Throughput, the distribution growth and significant excess coverage was supported by an increase in throughput in fresh water delivery volumes. Starting the top left portion of the page low pressure gathering volumes were 1.7 Bcf per day in the first quarter, which represents a 27% increase from the prior year and a 9% increase sequentially. Compression volumes during the quarter averaged just over a Bcf a day. A 68% increase compared to the prior year quarter and a 12% increase sequentially.
During the first quarter, we placed on line two compressor stations in the Marcellus adding incremental compression capacity of 5 million per day. Compression volumes eclipsed the Bcf day mark for the first time in Antero Midstream history, which is a testament to the growth in operational success in the field we have achieved since the AM IPO. On average, our compression was over 82% utilized throughout the quarter. High pressure gathering volumes were 1.6 Bcf per day at 28% increase over the prior year and then 12% increase sequentially. High pressure volumes averaged 95% of low pressure volumes for the first quarter of 2017.
Moving on to the water business, fresh water delivery volumes averaged 148,000 barrels per day, a 51% increase compared to the prior-year quarter and essentially in line with the fourth quarter of 2016.
Moving on to financial results, adjusted EBITDA for the first quarter was 9 million, a 49% increase compared to the prior-year quarter. The increase in adjusted EBITDA was again driven by growth in natural gas throughput volumes and fresh water delivery volumes. Gathering adjusted EBITDA contributed approximately 66% of AM’s adjusted EBITDA while water handling and treatment contributed the remaining 34%. Distributable cash flow for the first quarter was  million, resulting in DCF coverage of approximately 1.4 times.
Antero Midstream invested  million in gathering infrastructure,  million in water handling infrastructure,  million for the continued construction of the Antero Clearwater Facility, and 0 million for the processing and fractionation joint venture. During the quarter, we issued .9 million common units for total net proceeds of 3 million to fund the 5 million upfront payment to the processing and fractionation joint venture.
As of March 31, Antero Midstream had 0 million drawn on its .5 billion revolving credit facility, resulting in .3 billion in liquidity and a net debt to LTM EBITDA ratio of 1.9 times. We continue to maintain a strong balance sheet with sufficient liquidity to pursue accretive opportunities. We attribute our financial and operational success to our simple organic business model.
As you can see on slide number 7 titled Organic Growth Drives the Business, our strategy continues to be to generate attractive returns through organic growth detailed on the right hand side of the page, when Antero Midstream IPO in 2014 our investment to EBITDA buildout multiples were 6.9 times. Since then we’ve been able to continue to drive down our investment to EBITDA multiples to the mid 4 times and expect that continue to trend down into the 3 times range over the next 10 years.
The driver of the decrease in multiples will set another way, the increase in rates return is due to multiple variables. First during 2014 and 2015 we continue to buildout the large diameter gathering lines and buried freshwater lines. The act is our three way systems across our infrastructure. Since then we have leveraged our scale and now buildout smaller distance gathering lines and surface water pipelines to individual pads, which provide excellent returns on our invested capital.
Additionally Antero Midstream continues to benefit from the efficiencies and industry trends Antero Resources has about it. As you can imagine the confluence have been increased number of wells per pad more prolific wells on those pads, they require higher water intensive completions and the concentrated acreage position through consolidation efforts all benefit the midstream business. What this all translates into its attractive, organic, rates of return that our forecasted average 24% over the next 10 years as shown on the bottom right hand of the page.
Moving on to Slide 8 titled Long Term Outlook Through 2020, AM continues to target top-tier annual distribution growth of 28% to 30%, through 2020 while maintaining DCF coverage above 1.25 times and a conservative leverage profile in the low 2 times range. Our ability to target impressive growth rates while maintaining a strong balance sheet are a direct result of Antero Midstream’s robust organic project inventory that generates attractive rates of return.
Lastly, before we go into the Q&A portion of the call, I wanted to highlight that we recently completed the IPO of Antero Midstream GP LP or AMGP, which if you combine the enterprise value of both AM and AMGP results and then total enterprise valuation for Antero Midstream’s business of over a  billion. That’s a nice validation of the strategy and assets we have built at Antero Midstream.
Before we take any questions, I would like to point out that for securities law reasons, we will be limited in our ability to discuss the AMGP IPO any further. In summary, we remained very excited about the prospects Antero Midstream and the abundance of growth opportunities going forward.
With that, operator, we’re ready to take questions.
Question-and-Answer Session
Operator
[Operator Instructions] And our first question today comes from Ethan Bellamy from Baird. Please go ahead with your question.
Ethan Bellamy
Hi guys, good morning. Distributions from unconsolidated affiliates was .7 million in the fourth quarter and zero this quarter, what’s going on in that line and how should we model that line going forward please?
Mike Kennedy
Yes, Ethan that represented the distribution from the Stonewall pipeline that was made in or declared in December. We booked when it’s declared. First part of this year, it was declared in April approximately  million is declared. So that will be captured in the second quarter. I think we had guidance around that number for the year about  million to  million for the year and that that guidance is still good.
Ethan Bellamy
Is that going to be lumpy or is it?
Mike Kennedy
We hope it’s quarterly. We think maybe the one month away with that DTE actually acquired that pipeline. I think going forward from now hopefully its one a quarter. So for the remainder of 2017, I would still about  million to  million still good.
Ethan Bellamy
Okay, thanks. I know that competitive from question I ask you guys earlier this year. So thank you. And then just with respect to OpEx in the quarter, it look like that was up  million in mostly for the water business, is that a good run rate for the year?
Mike Kennedy
No. The winter of runs a little more just because of winter conditions and dealing with the freeze, freezing in such over the winter with a water. So I think the run rate will trend down from here.
Ethan Bellamy
Thanks, Mike. Appreciate it.
Mike Kennedy
Sure
Operator
[Operator Instructions] Our next question comes from Holly Stewart from Scotia Howard Weil. Please go ahead with your question.
Holly Stewart
Good morning. May be just a quick one on the CapEx waiting for the year a little bit heavier in 1Q, but how should we think about that kind of between the next three quarters?
Paul Rady
Yes. For 1Q, I think appeared a bit heavy just because there was the JV where the 0 million from the one-time payment for the JV and then buildout of those other plants from the gathering pressure and water side. I think it was pretty indicative of our guidance and the run rate throughout the year.
Holly Stewart
Okay, and then might just thinking about the compression business you said you are pleased to, I think Marcellus station go online during the quarter. Can you just remind us how to think about that maybe when you start compressing those wells? I mean obviously looks like you’ve got a lot more Marcellus compression on right now versus Utica just trying to think about how model that maybe over time?
Paul Rady
Yes. For Marcellus it’s where the growth will occur in 2017, that’s we wait on rover for Utica. And so [indiscernible] approximately 0 million per day of growth increase in gas. It needs to be compress. So I would add a compression station. So following the AR trajectory of its production guidance and attributing the growth to the Marcellus 2017. I think it would be a good indication of when further compression is going to come on.
Holly Stewart
The Utica wells placed on compression immediately or how do we think about that?
Paul Rady
Generally, I mean they can obviously, that pressure produce without compression further first couple of months, but we generally have compression available in those to come online.
Holly Stewart
Okay. All right, that’s I had. Thanks.
Paul Rady
Thank you.
Operator
[Operator Instructions] And ladies and gentlemen, we do have an additional question from Poe Fratt from D. A. Davidson. Please go ahead with your question.
Poe Fratt
Hi, good morning. Could you talk about this opportunities set that you’re looking at in the downstream. And I’m not sure if I heard anything about the potential economics to that Mike, if you wouldn’t mind giving us a little more color on that?
Glen Warren
Yes. That is Glen actually. This is a kind of a placeholder numbers not built into any of our forecasts or targets or any of that. But we do see – it’s a telegraphing that we do see further downstream to us investments even further downstream in processing and fractionation. So you might think if it is kind of similar type, structures, situations where we can invest dollars and Antero makes a commitment for barrels, particularly on the NGL side or MCS on the gas side. So it’s really just mean to be a placeholder. And I think you could assume that economics would likely be in the similar range to what we saw in the processing and fractionation at least the mid teens from a rate of return standpoint.
Poe Fratt
And then Glen as far as timing – sort of any color on those timing of potential – that potential opportunities set?
Glen Warren
Nothing terribly specific, but some of these could happen this year, in 2017 that’s certainly a possible and we put that number out there, telegraphing that there are some more near-term type situations like that. So that’s really what we’re thinking over the next few quarters. And hopeful that will come to past that certainly plenty of discussions going on out there with numerous parties, numerous projects downstream.
Poe Fratt
So what’s the gross number Glen so that potentially structure wise that would beat the growth’s opportunity side.
Paul Rady
EBITDA gross among multiple kind of projects, but the actual net to AM, the projects totalled multiple billion of dollars, but yes, net to AM, so interest that’s kind of the neighbourhood they were comfortable with give and take a few hundred million.
Poe Fratt
Yes, thank you so much.
Glen Warren
Thanks a lot.
Paul Rady
Thank you.
Operator
[Operator Instructions] Our next question comes from David Amoss from Heikkinen Energy. Please go ahead with your question.
David Amoss
Hey, good morning, guys. Thinking about your Slide 2 on the proper usage and the schedule that is kind of depicts there. Would you expect to maybe you had some more of this 2,500 pound per foot, just end of this yearlooks like a all done in or pretty close to first half of the year. And then how would you think about kind of the dynamic in 2018?
Mike Kennedy
Yes. I am not sure. We quantified it yet, but yes, directionally we are reaching up and trying more of the 2,500 pound or so, slightly that will put more in and try those out on a selective basis. There will be more water used. Don’t know how material that would be. We’re not shifting the whole program over the 2,500 its probably going to be 10% or so of the remaining completions that could be bumped up to 2,500. And then we will see what that pretends for the next year and for the future. There is always a point of diminishing returns. We haven’t found it yet. And so we will keep figuring it out with 3,500 locations to go obviously, one wants to figure it out earlier in that life cycle than later.
David Amoss
Thanks. That’s really helpful. Appreciate it.
Operator
And ladies and gentlemen, at this time I’m showing no additional questions. I’d like to turn the conference call back over to management for any closing remarks.
Chad Green
Thank you for joining today’s first quarter 2017 investor conference call. If you have any additional questions, please feel free to reach out to us. Thank you.
Operator
And ladies and gentlemen, with that we will conclude today’s conference call. We do thank you for attending. You may now disconnect your lines.')

然后我写了下面的代码:

import xml.etree.cElementTree as ET
from xml.dom import minidom
from xml.sax.saxutils import escape
import sys   
import os       
import regex
from fuzzywuzzy import fuzz
from fuzzywuzzy import process

for Arg in sys.argv:   
        file = Arg

f= open(Arg, 'r')
root = ET.Element("root")
section = "participants"
subsection = ""
executive_section=["Executives","Company Participants"]
analyst_section=["Analysts","Conference Call Participants"]
questions_section = ["Question-and-Answer Session"]
executive_list=[]
analyst_list=["Unidentified Analyst"]
analyst_name_list=[]
participants = ET.SubElement(root, "participants")
maxscore = 90

for line in f:     
    line = escape(line.strip())
    line = regex.sub(r'\p{Pd}+', '-', line)
    line = line.replace('&', '&')
    line = regex.sub(r'[^\x00-\x7f]',r'', line) 

    #Process only short lines

    if len(line) < 200 : 

        #determine analyst vs. executive section

        if (section == "participants"):

            found, score = process.extractOne(line, executive_section)
            if (score >= maxscore):
                executives = ET.SubElement(participants, "executives")
                subsection = "executives"
                print(found)
                print(score)
                continue

            found, score = process.extractOne(line, analyst_section)
            if (score >= maxscore):
                analysts = ET.SubElement(participants, "analysts")
                subsection = "analysts"
                print(found)
                print(score)
                continue

        #fill in the names

            if (subsection == "executives" and " - " in line):      
                executive = ET.SubElement(executives, "executive", id=line)
                name,title = line.split(" - ")
                ET.SubElement(executive, "name").text = name.strip()
                ET.SubElement(executive, "title").text = title.strip()
                executive_list.append(name.strip())
                continue

            if (subsection == "analysts" and " - " in line):  
                analyst = ET.SubElement(analysts, "analyst", id=line)
                name,title = line.split(" - ")
                ET.SubElement(analyst, "name").text = name.strip()
                ET.SubElement(analyst, "title").text = title.strip()
                analyst_list.append(line) 
                analyst_name_list.append(name)     
                continue

            #change section from participants to monologue when the first speaker is talking. 

            found, score = process.extractOne(line, executive_list)
            if score >= maxscore:
                executive = ET.SubElement(root, "monologues")
                section = "monologues"

            found, score = process.extractOne(line, "Operator")
            if score >= maxscore:
                monologues = ET.SubElement(root, "monologues")
                section = "monologues"

        #Monologue Section

        if (section == "monologues"):

            found, score = process.extractOne(line, executive_list)
            if score >= maxscore:
                executive = ET.SubElement(monologues, "executive", id=found)
                subsection = "executive"
                continue  

            found, score = process.extractOne(line, "Operator")
            if score >= maxscore:
                operator = ET.SubElement(monologues, "operator")
                subsection = "operator"
                continue    

            found, score = process.extractOne(line, questions_section)
            if score >= maxscore:
                section = "questions"
                questions = ET.SubElement(root, "questions")
                continue

#People in Q&A

        if (section == "questions"):

            found, score = process.extractOne(line, "Operator")
            if score >= maxscore:
                operator = ET.SubElement(questions, "operator")
                subsection = "operator"
                continue

            found, score = process.extractOne(line, executive_list)
            if score >= maxscore:
                executive = ET.SubElement(questions, "executive", id=found)
                subsection = "executive"
                continue

            found, score = process.extractOne(line, analyst_list)
            if score >= maxscore:
                analyst = ET.SubElement(questions, "analyst", id=found)
                subsection = "analyst"
                continue

#Fill in the speeches

    if (section == "monologues" and subsection == "executive" ):
        ET.SubElement(executive, "speech").text = line

    if (section == "monologues"  and subsection == "operator"):
        ET.SubElement(operator, "speech").text = line

    if (section == "questions" and subsection == "analyst" ):
        ET.SubElement(analyst, "speech").text = line

    if (section == "questions" and subsection == "executive" ):
        ET.SubElement(executive, "speech").text = line

    if (section == "questions" and subsection == "operator" ):
        ET.SubElement(operator, "speech").text = line


print (analyst_list)

f.close()

filename = os.path.basename(Arg) 
base_dir = '/Users/jnreyt/Desktop/folder/processed'


xmlstr = minidom.parseString(ET.tostring(root)).toprettyxml(indent="   ")
with open(os.path.splitext(os.path.join(base_dir, filename))[0]+'.xml', "w") as g:
    g.write(xmlstr)

我正在尝试使用模糊字符串匹配,以便系统可以适应潜在的拼写错误或不同的姓名书写方式。但是,我收到以下错误,我不知道如何解决:

  File "/Users/Desktop/folder/process.py", line 77, in <module>
    found, score = process.extractOne(line, executive_list)
  File "/Users/anaconda3/lib/python3.7/site-packages/fuzzywuzzy/process.py", line 220, in extractOne
    return max(best_list, key=lambda i: i[1])
RuntimeError: generator raised StopIteration

正如 JETM 所说,这是由生成器引发 StopIteration 而不是返回引起的。在这种情况下,它是由 extractOne().

调用的 extractWithoutOrder()

你可以等待更新,或者只是确保你没有将空列表传递给 extractOne(),因为这就是导致它引发异常的原因

就是说,鉴于 extractOne 只是 returns 单个“最佳”字符串,即使它没有达到此更改,它似乎也不太可能做很多事情。即在这种情况下你只会得到另一个例外